查看 plotEigengeneNetworks 的代码,您将无法使用它做您想做的事情。但是,您可以做的是重现它创建集群的方式,然后使用dendextend 包直接更新树状图(从 hclust 生成),使用以下命令:
# we need to run all of this to get the relevant packages...
source("http://bioconductor.org/biocLite.R")
biocLite("S4Vectors")
biocLite("IRanges")
biocLite("GenomeInfoDb")
biocLite("AnnotationDbi")
biocLite("GO.db")
biocLite("WGCNA")
# what the author wanted:
library(WGCNA)
set.seed(123)
ME <- data.frame(replicate(15, sample(1:10, 11, rep=TRUE)))
ME[,c(1:11)] <- sapply(ME[, c(1:11)], as.numeric)
plotEigengeneNetworks(ME, plotAdjacency = TRUE, setLabels = colnames(ME), plotDendrograms = TRUE, plotHeatmaps = FALSE)
# =================================
# Reproduce the above plot:
corME = cor(ME)
disME = as.dist(1 - corME)
clust = fastcluster::hclust(disME, method = "average") # you could also use stats::hclust just as well...
plot(clust)
# Now that we got what we wanted, let's move to dendrogram land
dend <- as.dendrogram(clust)
# get dendextend
if(!require(dendextend)) install.packages("dendextend")
library(dendextend)
dend <- hang.dendrogram(dend)
# plot(dend) # it now looks similar to the hclust plot
# we can now rotate the labels:
dend <- color_labels(dend)
dend2 <- rotate(dend, order = sort(labels(dend)))
par(mfrow = c(1,2))
plot(dend, main = "Original dend plot")
plot(dend2, main = "Dend plot after rotating the labels")
#
结果: