6

ape パッケージの plot.phylo コマンドを使用して、R の系統発生タイプのプロットのエッジ (線) に色を追加しようとしています。この例は「ファン」タイプのプロット用ですが、アプローチは「フィログラムタイプ」などと同じになると思います。

library('ape')
hc <- hclust(dist(USArrests), "ave")
plot(as.phylo(hc), type="fan")

グループのセットに基づいてヒント (ラベル) に色を追加することは、tip.color オプションと cutree コマンドを組み合わせれば問題ありません。

hc.cuts <- cutree(hc, k=5)
plot(as.phylo(hc), type="fan", tip.color=rainbow(5)[hc.cuts])

edge.color オプションは、エッジの色を定義しますが、多くの色が必要な場合はログイン式ではありません。

plot(as.phylo(hc), type="fan", tip.color=rainbow(5)[hc.cuts], edge.color=rainbow(5)[hc.cuts])

ただし、デンドログラムのブランチが特定のグループに向けられたら、端を端末の先端の色と一致させたいと思います。与えられた例では、赤と青のグループに向かって、エッジの最初のレベルは黒のままですが (赤と青の 2 つのグループに向かっているため)、これを超えるエッジは最終的な先端の色と同じ色になります。

as.phylo オブジェクトの $edge 値の順序を理解することが鍵だと思いますが、自分では理解できません。ありがとう。

4

1 に答える 1

6

@maj がコメントで示唆したように、dendextendは、そのパッケージの使用を気にしない場合に役立ちます。非常に柔軟で、広範なドキュメントとビネットがあります。

これは、dendextend FAQから最小限に変更された例です。

# install.packages("dendextend")
# install.packages("circlize")

library(dendextend)
library(circlize)

hc <- hclust(dist(USArrests))
dend <- as.dendrogram(hc)

num_clades <- 5

dend <- dend %>% 
  color_branches(k=num_clades, col=rainbow) %>% 
  color_labels(k=num_clades, col=rainbow)

par(mar = rep(0, 4))
circlize_dendrogram(dend, dend_track_height = 0.8) 

出力します

ここに画像の説明を入力

于 2015-09-07T20:48:38.117 に答える