0

私は系統樹の.treフォーマットと付随するデータセットを持っています。木の正確な形は問題ではなく、ランダムな系統樹です。データセットには、名前の 2 つの列があります。

そのようなツリーをプロットするとき、付随するデータセットからツリーに色付きのポイント (2 つの異なる色) を追加する可能性が非常に高くなります。問題は、次のコードを使用しているときです。

ggtree(RANDOMTREE) + geom_tippoint(pch=16, col=RANDOMDATA$color) + geom_tiplab(offset=0.1)

ポイントに色を付けますが、もちろん、色には付随するデータセットの順序があります。

しかし、ツリー内の種の名前に基づいて色をデータセット内の色と一致させたいと思います (それらは同じ形式ですが、順序が異なります)。私はまだそれを理解していませんでした。これで私を助けてもらえますか?

どうもありがとうございました。

コード例:

source("https://bioconductor.org/biocLite.R")
biocLite("ggtree")
library(ggtree)

tree<-read.tree(text="(spec1,((spec2,(spec9,(spec3,spec5))),spec8,(spec6,(spec7,spec4))));")
dataset1<-data.frame("name" = c("spec1","spec2","spec3","spec4","spec5","spec6","spec7","spec8","spec9"), "colour" = c("red","red","blue","red","red","blue","blue","red","blue"))

ggtree(tree) + geom_tiplab() + geom_tippoint(pch=16, col=as.factor(dataset1$colour))

私が得るもの: 間違ってラベル付けされたツリー

私が取得したいもの: 正しくラベル付けされたツリー

4

1 に答える 1

0

適切なグループ化はできますが、すぐに適切な色が得られません

p <- ggtree(tree) + geom_tiplab()
p <- p %<+% dataset1 + geom_tippoint(pch=16, aes(col=colour))
p

これを参考に使用しました: https://aschuerch.github.io/posts/2017-04-24-blog-post-1。パッケージに不適切なドキュメントがあります。「赤」と「青」を切り替えることで、目的を達成できます:p

色の順序を取り、それを組み込みのカラー スケールと組み合わせます。したがって、スケールが (赤、青) で始まり、シリーズが (青、赤) の場合、その順序で一致します。わかる?

編集: このパッケージのインストールは悪夢でした。 https://cran.r-project.org/web/packages/data.tree/vignettes/data.tree.htmlのようなより単純なパッケージがある場合は、他のものを試すことをお勧めしますアウト。dplyr や data.table などのコア パッケージの多くがアンインストールされ、途方もない数の依存関係があります。

于 2018-11-02T11:45:54.340 に答える