4

関連生物のセットの生理学的データを示すグラフに系統樹を配置しようとしています。下の写真のようなもの。これは、2 つの別々のグラフからパワーポイントでまとめたものです。仕事は終わったと思いますが、ドキュメントにフォーマットしやすいと思う単一の画像を作成したいと思っていました。ggplot2 を使用して必要なグラフを作成し、ape を使用してツリーをインポートできます。ツリーをグラフィカル オブジェクトとして保存し、gridExtra の gridarrange 関数を使用してグラフに配置する方法があるはずだと考えていました。問題は、サルがツリーをグラフィカルオブジェクトとして保存できないことです。たとえば、

p2<-plot(tree, dir = "u", show.tip.label = FALSE)

ツリーをプロットするだけで、p2 を呼び出すと、引数のリストが表示されます。誰かヒントがあればと思っています。

ありがとう!

ここに画像の説明を入力

4

2 に答える 2

3

それがCRANのgtableで機能するかどうかはわかりません

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()

ここに画像の説明を入力

于 2013-07-23T00:00:42.263 に答える
1

最初に、ggplot2 に関する私の問題のほとんどを解決してくれた複数の回答をすべて提供してくれた baptiste に感謝します

次に、ggplot2 で取得したヒートマップにサルのツリーを含めるという同様の質問がありました。Baptiste は私の一日を楽にしてくれました。私は自分にとって有用なものだけを使用しました(gg_rowsの追加を削除しました)。

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")

結果はこちら ヒートマップツリー

于 2014-02-13T13:51:41.420 に答える