R语言聚类分析可视化
之前的推文使用默认的plot
函数进行聚类树的可视化,今天继续扩展聚类树的可视化。
默认的聚类树可视化函数已经非常好用,有非常多的自定义设置,可以轻松实现好看的聚类树可视化。
op <- par(bg = "grey90")
plot(h.clust, main = "层次聚类", sub="", xlab = "", col = "#487AA1", col.main = "#45ADA8", col.lab = "#7C8071", col.axis = "#F38630", lwd = 2, lty = 1, hang = -1, axes = FALSE)# add axisaxis(side = 2, at = 0:5, col = "#F38630", labels = FALSE, lwd = 2)# add text in marginmtext(0:5, side = 2, at = 0:5, line = 1, col = "#A38630", las = 2)
par(op)
如果对默认的可视化效果不满意,可以先用as.dendrogram()
转化一下,再画图可以指定更多细节。
dhc <- as.dendrogram(h.clust)plot(dhc,type = "triangle") # 比如换个类型
可以提取部分树进行查看,使用cut
指定某个高度以上或以下的树进行查看。
op <- par(mfrow = c(2, 1))
# 高度在3以上的树plot(cut(dhc, h = 3)$upper, main = "Upper tree of cut at h=3")
# 高度在3以下的树plot(cut(dhc, h = 3)$lower[[2]], main = "Second branch of lower tree with cut at h=3")
par(op)
每一个节点都有不同的属性,比如颜色、形状等,我们可以用函数修改每个节点的属性。
比如修改标签的颜色。
# 按照上面画出来的结果,我们可以分为5类,所以准备好5个颜色labelColors = c("#CDB380", "#036564", "#EB6841", "#EDC951", "#487AA1")
# 把聚类树分为5个类clusMember <- cutree(h.clust,k=5)
# 给标签增加不同的颜色colLab <- function(n) { if (is.leaf(n)) { a <- attributes(n) labCol <- labelColors[clusMember[which(names(clusMember) == a$label)]] attr(n, "nodePar") <- c(a$nodePar, list(cex=1.5, # 节点形状大小 pch=20, # 节点形状 col=labCol, # 节点颜色 lab.col=labCol, # 标签颜色 lab.font=2, # 标签字体,粗体斜体粗斜体 lab.cex=1 # 标签大小 ) ) } n}
# 把自定义标签颜色应用到聚类树中diyDendro = dendrapply(dhc, colLab)
# 画图plot(diyDendro, main = "DIY Dendrogram")
# 加图例legend("topright", legend = c("Cluster 1","Cluster 2","Cluster 3","Cluster 4","Cluster 5"), col = c("#CDB380", "#036564", "#EB6841", "#EDC951", "#487AA1"), pch = c(20,20,20,20,20), bty = "n", pt.cex = 2, cex = 1 , text.col = "black", horiz = FALSE, inset = c(0, 0.1))
如果想要更加精美的聚类分析可视化,可以参考之前的几篇推文:
R语言可视化聚类树
R语言画好看的聚类树
又是聚类分析可视化
树状数据/层次数据可视化
参考资料
R帮助文档
https://r-graph-gallery.com/31-custom-colors-in-dendrogram.html
https://www.gastonsanchez.com/visually-enforced/how-to/2012/10/0/Dendrograms/
本文由 mdnice 多平台发布
R语言聚类分析可视化相关推荐
- R语言聚类分析--cluster, factoextra
R语言聚类分析–cluster, factoextra 本文转载自"R语言中文社区",己获授权,宏基因组公众号编辑对内容进行测试.修改及补充. 原文链接:https://mp.we ...
- 推荐:一本“高颜值”的R语言数据可视化图书(包邮送3本)
文章留言点赞前3名的朋友,每人送1本<R语言数据化可视化之美增强版>,名单揭晓日期为:本周日 (2020年7月12日晚7点).到时,获奖的朋友可以直接添加微信:meta-genomics, ...
- 半折预售:新书-R语言数据可视化之美|ggplot2作者推荐
我本来想等正式发售的时候,再告诉大家我的新书<R语言数据可视化之美>已经出版,奈何新书还太贵,这几天刚好京东有买100减50的活动,所以想想还是赶紧告诉大家吧,不然平时购买的话,太真有点小 ...
- R语言ggplot2可视化:ggplot2可视化散点图并使用geom_mark_circle函数在数据簇或数据分组的数据点周围添加圆圈进行注释(自定义圆圈的大小)
R语言ggplot2可视化:ggplot2可视化散点图并使用geom_mark_circle函数在数据簇或数据分组的数据点周围添加圆圈进行注释(自定义圆圈的大小) 目录
- R语言ggplot2可视化:ggplot2可视化时间序列数据并在末尾数据点添加数值标签(number label)
R语言ggplot2可视化:ggplot2可视化时间序列数据并在末尾数据点添加数值标签(number label) 目录
- R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加分组显著性(significance)标签
R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加分组显著性(significance)标签 目录 R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加显 ...
- R语言ggplot2可视化移除数据中的NA值再可视化实战:消除图形中非常突出的NA柱状图、使用subset函数、使用drop_na函数
R语言ggplot2可视化移除数据中的NA值再可视化实战:消除图形中非常突出的NA柱状图.使用subset函数.使用drop_na函数 目录
- R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:display only integer values on axis
R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:display only integer values on axis 目录 R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:d
- R语言ggplot2可视化密度图(density plot)、改变密度图下的填充色实战
R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战 目录 R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战
- R语言ggplot2可视化分组的重叠图实战:grouped overlay plot
R语言ggplot2可视化分组的重叠图实战:grouped overlay plot 目录 R语言ggplot2可视化分组的重叠图实战:grouped overlay plot #仿真数据
最新文章
- select,epoll,poll比较
- python压缩包怎么安装-详解python解压压缩包的五种方法
- Spark Streaming从Kafka中获取数据,并进行实时单词统计,统计URL出现的次数
- wxml修改样式_微信小程序 动态绑定事件并实现事件修改样式
- 棋牌游戏服务器架构: 总体设计
- 【php7扩展开发五】函数调用
- #CSS# 初识CSS
- java webmethod 参数_java详解Spring接收web请求参数的方式
- 集合——对象数组(引用数据类型数组)
- Libusb开发教程一 安装
- 单独一台机器测试Open×××加密隧道的问题和解决
- C++ 一个字符串只包含K和D。K表示杀人,D表示死亡。计算连续杀敌次数,阵亡则归零。
- 威逼司机二选一,是滴滴垄断,还是嘀嗒碰瓷?
- 吉利车机安装第三方软件教程(win10笔记本详细操作方法)
- 解决:IDEA2017/2019与Maven3.6.3不兼容的导致的unable to import maven project: see logs for details问题
- ruby入门_loop
- 临床试验数据管理系统
- Mathematica 矩阵的LU分解
- 计算机网络---网卡,交换机和路由器|CSDN创作打卡
- 山西计算机专业三本大学排名,2021山西三本院校排名 最新大学排行榜
热门文章
- SuiteCRM 跨站脚本漏洞复现(CVE-2020-14208)
- java测试脚本怎么写_Jmeter测试脚本编写(初学者熟悉篇)
- 2.8数据-paddlepaddle数据集uci_housing
- 数学建模之matlab软件学习04——专题四MATLAB绘图
- Java生成png文件字体不清晰_导出pdf图片字体模糊
- Reflex WMS入门系列七:收货(Receipt)
- PCB 设计流程(allegro 为例)
- 《未来世界的幸存者》:你会是未来世界的幸存者吗?
- MATLAB app designer中全局变量的使用
- 微信公众号h5开发流程