1

わかりましたので、これは以前に尋ねられたと確信していますが、何時間も検索した後、どこにも良い答えが見つかりません.

いくつかのデータがあり、分類を実行してから樹形図を作成します。

問題は、特に美学に関係しています。(1) グループの数に応じてカットする方法 (この例では 3 つが必要です)、(2) グループ ラベルを木の枝に揃える、(2) 巨大にならないように再スケーリングするグループ間のギャップ

(3) の詳細。私は非常に種が豊富なデータセットを持っており、切断せずに約1000のグループがあります。たとえば 3 で切断すると、木の右側にいくつかの枝があり、右側に 1 マイル離れたところに枝があり、より近くなるように再スケーリングする必要があります。これはすべて外部プログラムを介して可能ですが、rですべてやりたいです!

  1. このプロットの右上にネストされた平均シルエット幅プロットを配置できる場合のボーナス ポイント

これは虹彩データを使用した例です

library(ggplot2)
data(iris)
df = data.frame(iris)
df$Species = NULL

ED10 = vegdist(df,method="euclidean")
EucWard_10 = hclust(ED10,method="ward.D2")
hcd_ward10 = as.dendrogram(EucWard_10)

plot(hcd_ward10)
plot(cut(hcd_ward10, h = 10)$upper, main = "Upper tree of cut at h=75")
4

1 に答える 1

1

あなたが見たいのはdendextend Rパッケージだと思います(バイオインフォマティクスの論文もあります)。

(3) に関するあなたの質問については、再スケーリングの意味がよくわからないので、よくわかりません。私が言えることは、かなり多くの dendextend を実行できるということです。これは、3 つのグループの枝とラベルに色を付ける簡単な例です。

library(ggplot2)
library(vegan)
data(iris)
df = data.frame(iris)
df$Species = NULL

library(vegan)
ED10 = vegdist(df,method="euclidean")
EucWard_10 = hclust(ED10,method="ward.D2")
hcd_ward10 = as.dendrogram(EucWard_10)

plot(hcd_ward10)

install.packages("dendextend")
library(dendextend)
dend <- hcd_ward10
dend <- color_branches(dend, k = 3)
dend <- color_labels(dend, k = 3)
plot(dend)

ここに画像の説明を入力

また、plotly を使用してインタラクティブなデンドログラムを取得することもできます (ggplot メソッドは dendextend で利用できます)。

library(plotly)
library(ggplot2)
p <- ggplot(dend)
ggplotly(p)

ここに画像の説明を入力

于 2016-12-12T20:31:19.567 に答える