是否可以将 Joyplot 作为面板添加到包含 ggtree 的绘图中,如这些示例中所示?欢乐图的例子在这里。
我意识到我可以手动将游戏图的物种标签按照与树尖标签相同的顺序放置,但我正在寻找一种自动解决方案。我想将 Joyplot 行与树的尖端自动关联起来,类似于箱线图数据与尖端标签的关联方式。
我认为上述链接中于光创的例子提供了合适的数据:
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 的快速joyplot代码:
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 的新手,所以我完全不知道如何开始这样做。