superheat | 超级简单的热图绘制解决方案!~(二)(聚类和注释图的添加~)

news2024/11/25 7:40:21

1写在前面

前面写了superheat的教程,今天写一下第二波,如何进行聚类以及添加注释图吧。🤩

分分钟提升你的heatmap的颜值哦!~🥰

2用到的包

# devtools::install_github("rlbarter/superheat")
library(superheat)
library(tidyverse)

3示例数据

data("mtcars")

DT::datatable(mtcars)
alt

4行聚类

4.1 生成聚类树

superheat(mtcars,
scale = T,
row.dendrogram = T)
alt

4.2 聚类结果可视化

set.seed(123)
superheat(mtcars,
scale = T,
n.clusters.rows = 3)
alt

4.3 强制显示行名

默认情况下,在聚类时,相应的标签会分组到聚类名称中(通常为 123……等)。😘

如果想强制标签为原始变量名称,可以分别指定left.label = 'variable'Bottom.label = 'variable'。🥳

set.seed(123)
superheat(mtcars,
scale = T,
n.clusters.rows = 3,
left.label = 'variable')
alt

4.4 提取聚类结果

我们来试试提取一下聚类的结果吧。🤩

set.seed(123)
superheatmap <- superheat(mtcars,
scale = T,
n.clusters.rows = 3,
left.label = 'variable',
print.plot = F)

superheatmap$membership.rows
alt

4.5 自定义聚类结果

有时候你可能会有自己想要的聚类结果,手动定义一下吧。😘

gears <- paste(mtcars$gear, "gears")

set.seed(123)
superheat(mtcars,
scale = T,
membership.rows = gears)
alt

5注释图-Scatterplots

我们可以在热图的旁边添加一些注释图,非常简单,比如yt (‘y top’)或者yr(‘y right’)。🤒

常用的类型有以下几种,我们一起看看吧。😂

5.1 基础绘图

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon")
alt

5.2 调整大小

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.point.size = 4)
alt

5.3 调整颜色

point.col <- rep("wheat3", nrow(mtcars))
point.col[5] <- "red"

superheat(dplyr::select(mtcars, -mpg),
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.obs.col = point.col,
yr.point.size = 4)
alt

5.4 聚类颜色

我们甚至可以直接设置聚类的颜色,参数为yr.cluster.col。🧐

superheat(dplyr::select(mtcars, -mpg, -gear), 
# scale
scale = T,
# 行聚类
membership.rows = paste(mtcars$gear, "gears"),
left.label = "variable",
# mpg scatterplot
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.cluster.col = c("turquoise4", "plum4", "springgreen4"),
yr.point.size = 4)
alt

5.5 只显示一个聚类点

mpg.per.cluster <- mtcars %>% 
group_by(gear) %>%
summarize(mpg.avg = mean(mpg)) %>%
select(mpg.avg) %>%
unlist

superheat(dplyr::select(mtcars, -mpg, -gear),
scale = T,
membership.rows = paste(mtcars$gear, "gears"),
left.label = "variable",
yr = mpg.per.cluster,
yr.axis.name = "miles per gallon",
yr.cluster.col = c("black", "red", "orange"),
yr.point.size = 4)
alt

6注释图-Scatterplots

6.1 基础绘图

换个Line plot试试。🤪

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "line",
order.rows = order(mtcars$mpg))
alt

6.2 调整大小

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "line",
yr.line.size = 4,
order.rows = order(mtcars$mpg))
alt

6.3 调整颜色

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "line",
yr.line.size = 4,
yr.line.col = "springgreen4",
order.rows = order(mtcars$mpg))
alt

6.4 聚类

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
membership.rows = paste(mtcars$gear, "gears"),
left.label = "variable",
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "line",
yr.line.size = 4,
yr.cluster.col = c("plum4", "paleturquoise4", "salmon3"),
order.rows = order(mtcars$mpg))
alt

7注释图-Smoothed line

7.1 Loess curve

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "smooth",
yr.line.size = 4,
yr.line.col = "red4",
order.rows = order(mtcars$cyl))
alt

7.2 Linear regression line

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "smooth",
smoothing.method = "lm",
yr.line.size = 4,
yr.line.col = "plum4",
order.rows = order(mtcars$cyl))
alt

7.3 Scatterplot with connecting line plot

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "scatterline",
yr.line.col = "tomato3",
yr.obs.col = rep("orange", nrow(mtcars)),
yr.point.size = 4,
order.rows = order(mtcars$cyl))
alt

7.4 Scatterplot with smoothed line

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "scattersmooth",
yr.line.col = "tomato3",
yr.obs.col = rep("orange", nrow(mtcars)),
order.rows = order(mtcars$cyl))
alt

8注释图-Barplot

8.1 基础绘图

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "bar")
alt

8.2 调整颜色

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "bar",
yr.bar.col = "black",
yr.obs.col = rep("beige", nrow(mtcars)))
alt

8.3 聚类

mpg.per.cluster <- mtcars %>% 
group_by(gear) %>%
summarize(mpg.avg = mean(mpg)) %>%
select(mpg.avg) %>%
unlist

superheat(dplyr::select(mtcars, -mpg, -gear),
scale = T,
membership.rows = paste(mtcars$gear, "gears"),
left.label = "variable",
yr = mpg.per.cluster,
yr.axis.name = "miles per gallon",
yr.plot.type = "bar",
yr.bar.col = "black",
yr.cluster.col = c("beige", "white", "beige"))
alt

9注释图-Boxplot

9.1 基础绘图

mpg.per.cluster <- mtcars %>% 
group_by(gear) %>%
summarize(mpg.avg = mean(mpg)) %>%
select(mpg.avg) %>%
unlist

superheat(dplyr::select(mtcars, -mpg, -gear),
scale = T,
membership.rows = paste(mtcars$gear, "gears"),
left.label = "variable",
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "boxplot")
alt

9.2 调整颜色

mpg.per.cluster <- mtcars %>% 
group_by(gear) %>%
summarize(mpg.avg = mean(mpg)) %>%
select(mpg.avg) %>%
unlist

superheat(dplyr::select(mtcars, -mpg, -gear),
scale = T,
membership.rows = paste(mtcars$gear, "gears"),
left.label = "variable",
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.plot.type = "boxplot",
yr.cluster.col = c("beige", "slategray1", "beige"))
alt

10注释图坐标轴的调整

10.1 调整轴名称

用到yr.axis.name或者yt.axis.name就行啦。🤒

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yt = cor(mtcars)[-1,"mpg"],
yt.plot.type = "bar",
yt.axis.name = "Correlation\nwith mpg")
alt

10.2 调整坐标轴名称及数字大小

可以分别使用yr.axis.name.size/yt.axis.name.sizeyr.axis.size/yt.axis.size来调整。😘

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yt = cor(mtcars)[-1,"mpg"],
yt.plot.type = "bar",
yt.axis.name = "Correlation\nwith mpg",
yt.axis.size = 14,
yt.axis.name.size = 14)
alt

10.3 调整坐标轴Limits

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.lim = c(0, 60),
yt = cor(mtcars)[-1,"mpg"],
yt.plot.type = "bar",
yt.axis.name = "Correlation\nwith mpg",
yt.lim = c(-1.5, 1))
alt

10.4 调整坐标轴ticks

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.lim = c(0, 60),
yr.breaks = c(10, 40),
yt = cor(mtcars)[-1,"mpg"],
yt.plot.type = "bar",
yt.axis.name = "Correlation\nwith mpg")
alt

10.5 调整坐标轴ticks的labels

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.lim = c(0, 60),
yr.breaks = c(10, 40),
yr.break.labels = c("low", "high"),
yt = cor(mtcars)[-1,"mpg"],
yt.plot.type = "bar",
yt.axis.name = "Correlation\nwith mpg")
alt

10.6 调整注释图大小

superheat(dplyr::select(mtcars, -mpg), 
scale = T,
yr = mtcars$mpg,
yr.axis.name = "miles per gallon",
yr.axis.size = 14,
yr.axis.name.size = 14,
yr.plot.size = 0.8,
yt = cor(mtcars)[-1,"mpg"],
yt.plot.type = "bar",
yt.axis.name = "Correlation with mpg",
yt.axis.size = 14,
yt.axis.name.size = 14,
yt.plot.size = 0.7)
alt

alt
最后祝大家早日不卷!~

点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

📍 往期精彩

📍 🤩 LASSO | 不来看看怎么美化你的LASSO结果吗!?
📍 🤣 chatPDF | 别再自己读文献了!让chatGPT来帮你读吧!~
📍 🤩 WGCNA | 值得你深入学习的生信分析方法!~
📍 🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!
📍 🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?
📍 🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)
📍 🤩 scRNA-seq | 吐血整理的单细胞入门教程
📍 🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~
📍 🤩 RColorBrewer | 再多的配色也能轻松搞定!~
📍 🧐 rms | 批量完成你的线性回归
📍 🤩 CMplot | 完美复刻Nature上的曼哈顿图
📍 🤠 Network | 高颜值动态网络可视化工具
📍 🤗 boxjitter | 完美复刻Nature上的高颜值统计图
📍 🤫 linkET | 完美解决ggcor安装失败方案(附教程)
📍 ......

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/754085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”

各位CSDN的uu们你们好呀&#xff0c;今天继续数据结构与算法专栏中的二叉树&#xff0c;下面&#xff0c;让我们进入二叉树的世界吧&#xff01;&#xff01;&#xff01; 二叉树&#xff08;上&#xff09;——“数据结构与算法”_认真学习的小雅兰.的博客-CSDN博客 二叉树链…

TypeScript 中对【泛型】的定义使用方式解读

目录 泛型函数多个泛型参数泛型约束泛型别名泛型接口泛型类 泛型&#xff08;Generics&#xff09;是指在定义函数、接口或类的时候&#xff0c;不预先指定具体的类型&#xff0c;而在使用的时候再指定类型的一种特性。使用泛型 可以复用类型并且让类型更加灵活 泛型实现类型参…

Pycharm安装 leetcode 插件

目录 本节演示Pycharm安装 leetcode 插件做算法题 打开设置&#xff1a; 点击插件&#xff1a; 搜索leetcode并安装&#xff1a; 点这里的 leetcode&#xff1a; 初次使用点这里&#xff1a; 这里输入账号和密码&#xff1a; 点击确定后还是点登录&#xff1a; 登…

【MySQL】SQL入门(一)

&#x1f697;MySQL学习起始站~ &#x1f6a9;本文已收录至专栏&#xff1a;数据库学习之旅 ❤️每章节附章节思维导图&#xff0c;文末附全文思维导图&#xff0c;感谢各位点赞收藏支出~ 一.引入 (1) SQL分类 SQL语句&#xff0c;根据其功能&#xff0c;主要分为四类&#x…

巧妙使用 CSS 渐变来实现波浪动画

目录 一、波浪的原理 二、曲面的绘制 三、波浪动画 四、文字波浪动画 五、总结一下 参考资料 之前看到coco[1]的这样一篇文章&#xff1a;纯 CSS 实现波浪效果&#xff01;[2]&#xff0c;非常巧妙&#xff0c;通过改变border-radius和不断旋转实现的波浪效果&#xff0c…

网络安全—全知识点解析(课程学习笔记)

概括来说&#xff0c;网络安全课程的主要内容包括&#xff1a; 安全基本知识 应用加密学 协议层安全 Windows安全&#xff08;攻击与防御&#xff09; Unix/Linux安全&#xff08;攻击与防御&#xff09; 防火墙技术 入侵监测系统 审计和日志分析 下面分别对每部分知识介绍相应…

Stable Diffusion - ControlNet 插件中扩展局部重绘 InpaintOnly + LaMa 算法与应用

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131643131 LaMa: https://github.com/advimman/lama Paper: Resolution-robust Large Mask Inpainting with Fourier Convolutions LaMa: Large…

哇~~真的是你呀!今天是在LINUX上简单部署LAMP平台。

目录 一、概述 二、PHP安装配置 三、安装 四、启动 五、书写测试页面 六、客户端访问 七、安装论坛 一、概述 LAMP组成&#xff1a; &#xff08;1&#xff09; Linux 其他组件的平台 &#xff08;2&#xff09;Apache提供web服务 &#xff08;3&#xff09;MySQL|Ma…

004-Triple协议底层原理分析

目录 底层分析Http 2.0 底层分析 Http 2.0 为了解决Http 1.0 和 1.1 头信息无法压缩有很多比如空格、换行等无用字符请求和相应不能并行处理&#xff1a;一个Socket连接如果接受到Request 就必须要等到服务返回Response了才能继续发送另一个Request 就更新了Http的协议到2.…

SQL语法与数据库快速入门(1)

目录 数据库简介数据库分类常用数据库简介使用场景MySql 的安装与配置数据库客户端工具MySql 介绍SQL 简介DDL 数据库操作-创建DDL 数据库操作-查看DDL 数据库操作-修改DDL 数据库操作-删除DDL 数据库表操作简介DDL 数据库表操作-创建DDL 数据库表操作-查看DDL 数据库表操作-修…

国内值得去的外企之Google攻略

外企在国内非常的乖&#xff0c;基本上都是正常上下班&#xff0c;更有甚者&#xff0c;上班不到点不进门&#xff0c;下班一到点就跑路&#xff0c;中途还能去楼下咖啡店喝咖啡。 年假多、生活工作平衡、待遇还不错&#xff0c;下班以后同事之间几乎再无联系&#xff0c;如果…

解决matplotlib子图重叠问题

代码修改前&#xff1a; import matplotlib.pyplot as plt import seaborn as snsdef on_resize(event):print(当前画布大小为&#xff1a;{}x{}.format(event.width, event.height))if __name__ __main__:x list(range(1, 6))y1 [i ** 2 for i in x]y2 [i ** 3 for i in …

C++之std::set有序容器用法(一百六十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Redis安装与配置指南:适用于Windows、Mac和Linux系统的详细教程

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

Django实现接口自动化平台(九)环境envs序列化器及视图【持续更新中】

相关文章&#xff1a; Django实现接口自动化平台&#xff08;八&#xff09;测试报告reports序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 本章是项目的一个分解&#xff0c;查看本章内容时&#xff0c;要结合整体项目代码来看&#xff1a; python django vue …

3D全景虚拟旅游在旅游行业中具备哪些应用价值?

在网络强国战略指引下&#xff0c;我们的网络基础设施建设步伐正在加快&#xff0c;与此同时&#xff0c;虚拟技术也在不断的更新迭代&#xff0c;虚拟旅游也逐渐崭露头角&#xff0c;将真实世界中的景点、文化以及历史场景等数字化&#xff0c;让游客身临其境地感受这些景点和…

【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说

目录 一、sprintf 用于组包 应用1&#xff1a;按照规定格式组包 应用2&#xff1a;将数值类型转换成字符串类型 二、sscanf 用于解包 应用1&#xff1a;%d提取数值‘0’~‘9’ 应用2&#xff1a;%s提取字符串&#xff08;遇到\0 空格 回车结束提取) 三、sscanf高级应用 1、…

Unity3D+Hololens2+MRTK开发

最近项目要用Hololens2开发&#xff0c;公司新买了几套Hololens2设备&#xff0c;边学习边研究下吧。开始也是网上搜教程&#xff0c;但是问题还挺多的&#xff0c;大部分人的设置都不太对&#xff0c;有的是版本问题&#xff0c;走了好多弯路。现在就从零开始学习下Hololens2吧…

网络编程——RPC与HTTP基本介绍、历史追溯、主流应用场景、对比分析、为什么还需要使用RPC

一、HTTP与RPC基本介绍 HTTP协议&#xff08;Hyper Text Transfer Protocol&#xff09;超文本传输协议&#xff1a; 一个用于在网络上交换信息的标准协议&#xff0c;它定义了客户端(例如浏览器)和服务器之间的通信方式。如平时上网在浏览器上敲个网址url就能访问网页&#x…

Vue--》打造个性化医疗服务的医院预约系统(一)

今天开始使用 vue3 ts 搭建一个医院预约系统的前台页面&#xff0c;因为文章会将项目的每一个地方代码的书写都会讲解到&#xff0c;所以本项目会分成好几篇文章进行讲解&#xff0c;我会在最后一篇文章中会将项目代码开源到我的GithHub上&#xff0c;大家可以自行去进行下载运…