Можно ли добавить плагин joyplot в качестве панели к сюжету, который включает ggtree, как показано в этих примерах? Примеры joyplots здесь.
Я понимаю, что я мог вручную поместить метки видов для joyplot в том же порядке, что и метки на основе дерева, но я ищу автоматическое решение. Я хотел бы связать строки joyplot с подсказками деревьев автоматически, сродни тому, как данные boxplot связаны с метками наконечника.
Я думаю, что примеры Guangchuang Yu на приведенной выше ссылке предоставляют подходящие данные:
require(ggtree)
require(ggstance)
# generate tree
tr <- rtree(30)
# create simple ggtree object with tip labels
p <- ggtree(tr) + geom_tiplab(offset = 0.02)
# Generate categorical data for each "species"
d1 <- data.frame(id=tr$tip.label, location=sample(c("GZ", "HK", "CZ"), 30, replace=TRUE))
#Plot the categorical data as colored points on the tree tips
p1 <- p %<+% d1 + geom_tippoint(aes(color=location))
# Generate distribution of points for each species
d4 = data.frame(id=rep(tr$tip.label, each=20),
val=as.vector(sapply(1:30, function(i)
rnorm(20, mean=i)))
)
# Create panel with boxplot of the d4 data
p4 <- facet_plot(p1, panel="Boxplot", data=d4, geom_boxploth,
mapping = aes(x=val, group=label, color=location))
plot(p4)
Можно ли создать блокнот вместо boxplot?
Вот код для быстрого набора радостей демо-набора d4 выше:
require(ggjoy)
ggplot(d4, aes(x = val, y = id)) +
geom_joy(scale = 2, rel_min_height=0.03) +
scale_y_discrete(expand = c(0.01, 0)) + theme_joy()
Я новичок в ggplot2, ggtree и ggjoy, поэтому я совершенно не понимаю, как начать это делать.