好的,所以我确定以前曾经问过这个问题,但经过几个小时的搜索,我无法在任何地方找到好的答案。
我有一些数据,我运行分类然后我做了一个树形图。
问题与美学有关,特别是; (1)如何根据组的数量进行切割(在本例中我想要3),(2)使组标签与树枝对齐,(2)重新缩放以使其不存在各组之间存在巨大差距
更多关于(3)。我有非常丰富的物种数据集,有1000个没有切割的群体。如果我在3处切割,那么树右边有一些树枝,而且有一英里的距离。在右边,我想重新缩放,以便更接近。所有这一切都可以通过外部程序实现,但我想在r!
中完成所有这些工作以下是使用虹膜数据的示例
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")
答案 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)
您还可以使用plotly获取交互式树形图(ggplot方法可通过dendextend获得):
library(plotly)
library(ggplot2)
p <- ggplot(dend)
ggplotly(p)