首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将系统发育树与x,y图相结合

将系统发育树与x,y图相结合
EN

Stack Overflow用户
提问于 2013-07-23 07:01:17
回答 2查看 1.6K关注 0票数 4

我正在尝试将系统发育树排列到一张图表上,显示一组相关生物体的生理数据。类似于下面的图片。这是在powerpoint中从两个单独的图表中放在一起的。我猜它完成了工作,但我希望创建一个单一的图像,我认为这将更容易格式化为文档。我可以使用ggplot2生成我想要的图形,并使用ape导入树。我在想,应该有一种方法将树保存为图形对象,然后使用gridExtra中的gridarrange函数将其与图形一起排列。问题是ape不让我将树保存为图形对象,例如,

代码语言:javascript
复制
p2<-plot(tree, dir = "u", show.tip.label = FALSE)

只是绘制了树,当你调用p2时,它只给出了一个参数列表。我想知道是否有人有什么建议。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-23 08:00:42

我不确定这是否适用于CRAN的gtable。

代码语言:javascript
复制
require(ggplot2)
require(gridBase)
require(gtable)

p <- qplot(1,1)
g <- ggplotGrob(p)

g <- gtable_add_rows(g, unit(2,"in"), nrow(g))
g <- gtable_add_grob(g, rectGrob(),
                     t = 7, l=4, b=7, r=4)

grid.newpage()
grid.draw(g)

#grid.force()
#grid.ls(grobs=F, viewports=T)
seekViewport("layout.7-4-7-4")
par(plt=gridPLT(), new=TRUE)
plot(rtree(10), "c", FALSE, direction = "u")
upViewport()

票数 3
EN

Stack Overflow用户

发布于 2014-02-13 21:51:41

首先,我要感谢baptiste为我解决了我与ggplot2之间的大部分问题提供了多种答案。

其次,我有一个类似的问题,那就是在用ggplot2获得的热图中包含一棵来自猿类的树。Baptiste让我欣喜若狂,尽管我的简化版本可能会有所帮助。我只使用了对我有用的东西(去掉了添加的gg_rows)。

代码语言:javascript
复制
library(ape)
tr <- read.tree("mytree.tree")
# heat is the heatmap ggplot, using geom_tile
g <- ggplotGrob(heat)
grid.newpage()
grid.draw(g)
# use oma to reduce the tree so it fits 
par(new = TRUE, oma = c(5, 4, 5, 38))
plot(tr)
nodelabels(tr$node.label, cex = 1, frame = "none", col = "black", adj = c(-0.3, 0.5))
add.scale.bar()
# use dev.copy2pdf and not ggsave
dev.copy2pdf(file = "heatmap_prob.pdf")

结果就在这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17798898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档