我正在尝试创建一个树形图,我的样本有5个组代码(作为样本名称/种类/等,但重复).
因此,我有两个问题,帮助将是伟大的:
如何在叶标签中显示组代码(而不是样本编号)?
我希望为每个代码组分配一种颜色并根据它对叶子标签着色(可能会发生它们不在同一个分支中,我可以找到更多信息)?
是否可以使用我的脚本执行此操作(ape或ggdendro):
sample<-read.table("C:/.../DOutput.txt", header=F, sep="")
groupCodes <- sample[,1]
sample2<-sample[,2:100]
d <- dist(sample2, method = "euclidean")
fit <- hclust(d, method="ward")
plot(as.phylo(fit), type="fan")
ggdendrogram(fit, theme_dendro=FALSE)
Run Code Online (Sandbox Code Playgroud)
随机数据框替换我的read.table:
sample = data.frame(matrix(floor(abs(rnorm(20000)*100)),ncol=200))
groupCodes <- c(rep("A",25), rep("B",25), rep("C",25), rep("D",25)) # fixed error
sample2 <- data.frame(cbind(groupCodes), sample)
Run Code Online (Sandbox Code Playgroud) 我使用下面的代码在R中运行层次聚类分析后生成了一个树形图.我现在尝试根据另一个因子变量为标签着色,该变量保存为矢量.我实现这一目标的最接近的方法是使用包中的ColourDendrogram函数对分支进行颜色编码sparcl.如果可能的话,我更愿意对标签进行颜色编码.我在以下链接中找到了类似问题的答案在树形图中使用现有列和着色分支的树形图的颜色分支,但是我还没有能够找到如何为我的目的转换示例代码.下面是一些示例数据和代码.
> dput(df)
structure(list(labs = c("a1", "a2", "a3", "a4", "a5", "a6", "a7",
"a8", "b1", "b2", "b3", "b4", "b5", "b6", "b7"), var = c(1L,
1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L), td = c(13.1,
14.5, 16.7, 12.9, 14.9, 15.6, 13.4, 15.3, 12.8, 14.5, 14.7, 13.1,
14.9, 15.6, 14.6), fd = c(2L, 3L, 3L, 1L, 2L, 3L, 2L, 3L, 2L,
4L, 2L, 1L, 4L, 3L, 3L)), …Run Code Online (Sandbox Code Playgroud)