R语言绘图——给树状图的标签赋予不同颜色

R包dendextend是一个树状图绘图的综合工具,它提供了一系列的调整树状图的图形参数,如颜色,大小以及分支类型、节点和标签等,能用来可视化和比较树状图。接下来简单介绍其赋予不同样本(或标签)不同颜色的功能。

不同标签,不同颜色

# install.packages("dendextend")#安装包
library(dendextend)#导入包

data(USArrests)#该数据集包含了1973年美国50个州每10万居民因犯罪而被捕的统计数据。
dend <- as.dendrogram(hclust(dist(USArrests[1:10,])))#简单起见仅取10个样本

###原始图,没有区分颜色
labels_colors(dend)#查看树状图标签的颜色,没有赋值,所以没有颜色,结果为NULL
## NULL
par(mfrow = c(1,2))
plot(dend, main = "Original dend")

###修饰图,增加区分颜色
labels_colors(dend) <- 1:10#赋予10个样本10个标签
plot(dend, main = "A color for every state")

同一类别,同一颜色

有时候想直观地看看同一类别是否聚到了一起,可以给每一类赋予同一种颜色,增加区分度。

# install.packages("dendextend")
library(dendextend)

small_iris <- iris[c(1,2,3,51,52,53,101,102,103), ]
dend <- as.dendrogram(hclust(dist(small_iris[,-5])))

#原始图,没有区分颜色
labels_colors(dend)
## NULL
par(mfrow = c(1,2))
plot(dend, main = "Original dend")

# 修饰图,增加区分颜色
types <- factor(small_iris[,5])
n_types <- length(unique(small_iris[,5]))
cols <- colorspace::rainbow_hcl(n_types, c = 70, l  = 50)
colors_to_use <- cols[types]

labels_colors(dend) <- colors_to_use
plot(dend, main = "A color for every Species")

参考资料:Frequently asked questions

posted @ 2020-04-26 21:46  LittleFaith  阅读(3571)  评论(0编辑  收藏  举报