r语言ggplot2一夜多图_R语言ggplot2画四方形的热图展示相关系数的简单小例子

本文通过一个简单例子介绍如何使用R语言的ggplot2包绘制四方形的热图来展示相关系数。首先进行相关性分析获取相关系数矩阵,然后将宽格式数据转换成长格式以适应ggplot2,接着使用ggplot2画出基本热图,并调整颜色、添加数值标签,最后进行美化,包括去除背景和坐标轴元素。
摘要由CSDN通过智能技术生成

R语言里画热图通常会使用pheatmap这个包。如果想使用ggplot2这个包画热图的话需要借助geom_tile()这个函数。今天的内容就以相关系数的数据为例介绍一下ggplot2画热图的一个简单小例子。

视频版

接下来是文字版

第一步是做相关性分析,获得相关系数

R语言里做相关性分析需要准备的数据格式如下:每行是一个样本,每列是一个变量,存储到excel中,然后另存为csv格式数据

a8f6fe076c2e2b43b226526c5a8a3dda.png
image.png

需要示例数据的可以直接在文末留言

首先是读入数据
df"example_data/cor_plot_example.csv",
             header=T,
             row.names = 1)
df
相关性分析

直接用cor()函数获得相关系数矩阵

cordfcordf
相关系数矩阵是宽格式的数据,ggplot2作图通常是长格式数据,把宽格式变成长格式直接使用reshape2包中的melt()函数就可以了
plotdfplotdf
接下来就是用ggplot2画图了

最基本的热图

library(ggplot2)
ggplot(plotdf,aes(x=Var1,y=Var2))+
  geom_tile(aes(fill=value))
a593ea5e873bc2c5722d7c79a69cf153.png
image.png
更改配色
ggplot(plotdf,aes(x=Var1,y=Var2))+
  geom_tile(aes(fill=value))+
  scale_fill_gradient2(low="green",mid="white",high = "red")
003e65c3b1e68c7fcada43a657c62612.png
image.png
将相关系数的数值作为文字标签
ggplot(plotdf,aes(x=Var1,y=Var2))+
  geom_tile(aes(fill=value))+
  scale_fill_gradient2(low="green",mid="white",high = "red")+
  geom_text(aes(label=value))
d113b1bbcd8ef3c33bcfff9f5b70ea28.png
image.png
相关系数的小数位数太多,我们只保留两位
plotdf$value$value,2)
ggplot(plotdf,aes(x=Var1,y=Var2))+
  geom_tile(aes(fill=value))+
  scale_fill_gradient2(low="green",mid="white",high = "red")+
  geom_text(aes(label=value))
6cf32ddd29838c6cefd272857bf85e0a.png
image.png
这样最基本的热图就做好了,接下来是简单的美化

包括去掉灰色背景,去掉坐标轴的标题和小短线

ggplot(plotdf,aes(x=Var1,y=Var2))+
  geom_tile(aes(fill=value))+
  scale_fill_gradient2(low="green",mid="white",high = "red")+
  geom_text(aes(label=value))+
  theme(panel.background = element_blank(),
        axis.title = element_blank(),
        axis.ticks = element_blank())
0ed50da2dfcb59dda60b65fbdade615f.png
image.png

欢迎大家关注我的公众号

小明的数据分析笔记本c1e283bfd78a8c12b69a517acde27261.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值