Можно ли добавить джойплот в виде панели к графику, который включает в себя ggtree, как показано в эти примеры? Примеры радостных сюжетов находятся здесь.
Я понимаю, что мог бы вручную поместить метки видов для графика радости в том же порядке, что и метки верхушек деревьев, но я ищу автоматическое решение. Я хотел бы автоматически связать строки графика с вершинами деревьев, подобно тому, как данные блочной диаграммы связаны с метками вершин.
Я думаю, что примеры Гуанчуан Ю по приведенной выше ссылке предоставляют подходящие данные:
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)
В результате получается следующий график:
Можно ли создать джойсплот вместо боксплота?
Вот код для быстрого построения графика демонстрационных данных 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, поэтому я совершенно не понимаю, как вообще начать это делать.
dput(data_sample)
- person eipi10   schedule 29.07.2017dput(data_sample)
- person LCM   schedule 29.07.2017