如何在r

时间:2016-12-12 08:51:34

标签: r dendrogram hclust dendextend ggdendro

好的,所以我确定以前曾经问过这个问题,但经过几个小时的搜索,我无法在任何地方找到好的答案。

我有一些数据,我运行分类然后我做了一个树形图。

问题与美学有关,特别是; (1)如何根据组的数量进行切割(在本例中我想要3),(2)使组标签与树枝对齐,(2)重新缩放以使其不存在各组之间存在巨大差距

更多关于(3)。我有非常丰富的物种数据集,有1000个没有切割的群体。如果我在3处切割,那么树右边有一些树枝,而且有一英里的距离。在右边,我想重新缩放,以便更接近。所有这一切都可以通过外部程序实现,但我想在r!

中完成所有这些工作
  1. 如果您可以将平均轮廓宽度图嵌套在此图的右上角
  2. ,则为点数

    以下是使用虹膜数据的示例

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

1 个答案:

答案 0 :(得分:1)

我怀疑你想要看的是dendextend R包(它还有bioinformatics中的论文。)

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

enter image description here

您还可以使用plotly获取交互式树形图(ggplot方法可通过dendextend获得):

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

enter image description here