R语言绘制热图Heatmap

本文介绍如何使用R语言绘制热图,强调调整颜色以提高视觉效果和辨识度。通过示例代码nba_heatmap <- heatmap(nba_matrix, Rowv=NA, Colv=NA, col = topo.colors(16),scale=""column"

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

热图,适合二维数据表的可视化,数值用颜色显示。

细活在于调颜色,给人感性的、辨识度高的认识。


nba <- read.csv("d:/ppg2015.csv", sep=",")

nba <- nba[order(nba$PTS),]; #按场均得分排名
row.names(nba) <- nba$PLAYER;#行名为球星名
nba <- nba[,-c(1:4,8,10,12)]

nba_matrix <- data.matrix(nba)

nba_heatmap <- heatmap(nba_matrix, Rowv=NA, Colv=NA, col = topo.colors(16),scale="column", margins=c(5,10))


Heatmap颜色的设置还是很关键的,直接体现你这幅图的效果了。
R中颜色调色板很多:
(1)简单的
heat.colors(n, alpha = 1)
terrain.colors(n, alpha = 1)
topo.colors(n, alpha = 1)
cm.colors(n, alpha = 1)
比如,col=cm.colors(256))  #这里的颜色设置为n=256种,如果为2,做出的图就有两种颜色,不是你颜色设置越多越好,根据自己的需要而定(即合理的设置n)。
(2)复杂的
rainbow(n, s = 1, v = 1, start = 0, end = max(1,n - 1)/n, alpha = 1)
其中n代表颜色的种类,Start是起始的颜色,end是结束的颜色。可以设置为red=0, yellow=1/6, green=2/6, cyan=3/6, blue=4/6 and magenta=5/6.

热图的优缺点:

优点:
1. 与实景结合,数据表达更直观
2. 用形状和
### 使用 R 语言绘制 (Heatmap) #### pheatmap 包简介 `pheatmap` 是一个功能强大的 R 包,用于创建高质量的。该包允许用户对数据矩阵进行聚类分析并以视觉上吸引人的方式显示结果[^1]。 #### 安装与加载 `pheatmap` 为了使用此包,需先安装它: ```r install.packages("pheatmap") ``` 接着,在每次会话开始时加载这个软件包: ```r library(pheatmap) ``` #### 数据准备 假设有一个名为 `data_matrix` 的表达量矩阵作为输入文件,其中每一列代表样本而每行则对应于不同的特征(比如基因)。这里给出一个简单的例子来模拟这样的数据集: ```r set.seed(123) # 设置随机种子以便重复实验 data_matrix <- matrix(rnorm(100), nrow=10, dimnames=list(paste0('Gene', 1:10), paste0('Sample', 1:10))) head(data_matrix[, 1:5]) ``` 这段代码生成了一个包含 10 行(基因)和 10 列(样本)的数据框,并填充了正态分布产生的数值。前五行被打印出来供查看[^4]。 #### 创建基础 有了合适格式化的数据之后就可以调用 `pheatmap()` 函数来构建最简单形式的了: ```r pheatmap(data_matrix) ``` 这将会打开一个新的窗口显示出带有默认参数设定下的彩色方格阵列——即所谓的“”。每个单元格的颜色深浅反映了相应位置处原始值大小的关系;通常情况下,较亮色调意味着较高水平的测量指标,反之亦然。 #### 自定义属性 除了上述最基本的操作外,还可以进一步调整像的各种特性,如颜色方案、边距宽度以及是否启用树状等。下面是一些常用的可选参数及其说明: - **color**: 指定渐变色板,默认采用的是从蓝色到白色再到红色的变化序列; - **scale**: 对数转换方式 ("none", "row", 或者 "column") ,有助于标准化不同范围内的变量间比较; - **cluster_rows/cols**: 布尔型标志位决定要不要基于距离度量执行层次聚类运算; - **show_rownames/show_colnames**: 控制标签文字可见性的逻辑开关。 举例来说,如果想要改变配色风格并且仅沿行方向实施分层分类的话,则应这样写命令: ```r pheatmap( data_matrix, color=colorRampPalette(c("navy", "white", "firebrick"))(50), scale="row", cluster_cols=F, show_rownames=T, show_colnames=T ) ``` 通过这种方式能够得到一张经过精心修饰后的,从而更好地服务于特定应用场景的需求[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值