- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试以与使用包“ape”绘制树时相同的“样式”绘制凝聚聚类(UPGMA 与 Agnes)的结果。我在下图中包含的一个简单示例
关键问题是我希望能够根据叶子标签中的 a 图案为树状图的叶子着色。我尝试了两种方法:要么使用 hc2Newick
或者我使用了 Joris Meys 在对 Change Dendrogram leaves 的回答中提出的代码.两者都没有给出令人满意的输出。可能我也不完全理解树状图的构建方式。 abundance.agnes.ave
的 ASCII 保存对象(从运行的 agnes 中存储)可以在 https://www.dropbox.com/s/gke9qnvwptltkky/abundance.agnes.ave 上找到.
当我使用第一个选项(来自 bioconductor 的 hc2Newick
包中的 ctc
)时,我在使用此代码时得到下图:
write(hc2Newick(as.hclust(abundance.agnes.ave)),file="all_samples_euclidean.tre")
eucltree<-read.tree(file="all_samples_euclidean.tre")
eucltree.laz<-ladderize(eucltree,FALSE)
tiplabs<-eucltree$tip.label
numbertiplabs<-length(tiplabs)
colourtips<-rep("green",numbertiplabs)
colourtips[grep("II",tiplabs)]<-"red"
plot(eucltree.laz,tip.color=colourtips,adj=1,cex=0.6,use.edge.length=F)
add.scale.bar()
use.edge.length=T
在上面的代码中确实给出了一个没有正确“对齐”的聚类:
clusDendro<-as.dendrogram(as.hclust(abundance.agnes.ave))
labelColors<-c("red","green")
clusMember<-rep(1,length(rownames(abundance.x)))
clusMember[grep("II",rownames(abundance.x))]<-2
names(clusMember)<-rownames(abundance.x)
colLab <- function(n)
{
if(is.leaf(n)) {
a <- attributes(n)
# clusMember - a vector designating leaf grouping
# labelColors - a vector of colors for the above grouping
labCol <- labelColors[clusMember[which(names(clusMember) == a$label)]]
attr(n, "nodePar") <- c(a$nodePar, lab.col = labCol)
}
n
}
clusDendro<-dendrapply(clusDendro, colLab)
plot(clusDendro,horiz=T,axes=F)
最佳答案
这个功能现在在一个名为“dendextend”的新包中可用,正是为这种事情而构建的。
您可以在包的演示文稿和小插图中看到许多示例,位于以下 URL 的“使用”部分:https://github.com/talgalili/dendextend
在以下 SO 问题中刚刚回答了一个几乎准确的问题:
https://stackoverflow.com/a/18832457/256662
关于r - 更改 plot.dendrogram 中的叶子颜色,就像包 ape 的 plot.phylo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16062684/
Infix[]仅适用于第一级: Infix[(c a^b)^d] (* -> (a^b c) ~Power~ d *) 由于我想(不要问为什么)将完整表达式切换为中缀表示法,因此我尝试了以下操作: S
我正在寻找遍历特定元素的叶子的最有效方法。例如: One Two Paragraph Text
我想评估 bool 表达式,例如 a=b & s、>=、{ eval() {} // bool operator()(const var& v) const {
我正在尝试将物联网边缘设备设置为边缘网关。我们不希望我们的叶子/传感器/下游设备直接连接到互联网/云,因此我希望物联网边缘网关(顾名思义)能够桥接下游设备和云/物联网之间的连接中心。但是,我意识到任何
我是一名优秀的程序员,十分优秀!