Как увеличить максимальную ширину ветки в ggtree?

Я добавил некоторые черты к ветвям моей филограммы и увеличил ширину ветвей до их значения:

library(ggtree)
library(tidyverse)

tree <- rtree(3, rooted = T)
trait <- data.frame(node = 1:(length(tree$edge.length)+1),
                    thing = rnorm(n = length(tree$edge.length)+1, mean = 4))

t <- full_join(tree, trait)
ggtree(t, aes(size = thing))

Ширина ветви должна отражать это, особенно если значения признаков имеют большой диапазон. Как указать максимальную ширину веток?


person mpe    schedule 24.09.2019    source источник


Ответы (1)


Вызов вектора trait$thing напрямую при отображении эстетики size. Лучше всего убедиться, что trait упорядочен tree$tip.label, хотя ggtree может выполнять какое-то внутреннее сопоставление.

library(ggtree)

tree <- rtree(3, rooted = T)
trait <- data.frame(node = 1:(length(tree$edge.length)+1),
                    thing = rnorm(n = length(tree$edge.length)+1, mean = 4))

ggtree(tr = tree, aes(size = trait$thing)) + 
  scale_size_continuous(range = c(0.2, 2))

От ?scale_size_continuous:

диапазон

числовой вектор длины 2, который определяет минимальный и максимальный размер графического символа после преобразования.

person teofil    schedule 25.09.2019
comment
Это дает мне точно такой же результат. - person mpe; 25.09.2019
comment
Извините, я упустил этот момент в вопросе. Смотрите мою правку. Вы должны иметь возможность рассматривать ширину края как любую другую эстетику и контролировать размер символов с помощью scale_size_continuous. - person teofil; 25.09.2019
comment
Спасибо, это работает! Почему-то я не подумал просто использовать scale_size_continuous. - person mpe; 26.09.2019