美文网首页R学习与可视化
R绘图_ggplot2速绘相关性矩阵热图

R绘图_ggplot2速绘相关性矩阵热图

作者: 谢俊飞 | 来源:发表于2020-03-03 22:50 被阅读0次
  • 火狐截图_2020-02-11T08-36-22.554Z.png

ggplot2 : Quick correlation matrix heatmap - R software and data visualization

ggplot2:速绘相关性矩阵热图-R软件和数据可视化

1. 构建数据
rm(list = ls())
library(ggplot2)
mydata <- mtcars[, c(1, 3, 4, 5, 6, 7)]
head(mydata)
                   mpg disp  hp drat    wt  qsec
Mazda RX4         21.0  160 110 3.90 2.620 16.46
Mazda RX4 Wag     21.0  160 110 3.90 2.875 17.02
Datsun 710        22.8  108  93 3.85 2.320 18.61
Hornet 4 Drive    21.4  258 110 3.08 3.215 19.44
Hornet Sportabout 18.7  360 175 3.15 3.440 17.02
Valiant           18.1  225 105 2.76 3.460 20.22

#compute the correlation matrix
cormat <- round(cor(mydata), 2)
head(cormat)
       mpg  disp    hp  drat    wt  qsec
mpg   1.00 -0.85 -0.78  0.68 -0.87  0.42
disp -0.85  1.00  0.79 -0.71  0.89 -0.43
hp   -0.78  0.79  1.00 -0.45  0.66 -0.71
drat  0.68 -0.71 -0.45  1.00 -0.71  0.09
wt   -0.87  0.89  0.66 -0.71  1.00 -0.17
qsec  0.42 -0.43 -0.71  0.09 -0.17  1.00

#create the correlation heatmap with ggplot2
library(reshape2)
melted_cormat <- melt(cormat)
head(melted_cormat)
  Var1 Var2 value
1  mpg  mpg  1.00
2 disp  mpg -0.85
3   hp  mpg -0.78
4 drat  mpg  0.68
5   wt  mpg -0.87
6 qsec  mpg  0.42
2. 默认绘图 geom_tile()
#The function geom_tile()[ggplot2 package] is used to visualize the correlation matrix :
ggplot(data = melted_cormat, aes(x=Var1, y=Var2, fill=value)) +
  geom_tile()
  • Rplot01.png
3. 重塑数据(上三角)
# Get upper triangle of the correlation matrix
get_upper_tri <- function(cormat){
  cormat[lower.tri(cormat)]<- NA
  return(cormat)
}
upper_tri <- get_upper_tri(cormat)
upper_tri
     mpg  disp    hp  drat    wt  qsec
mpg    1 -0.85 -0.78  0.68 -0.87  0.42
disp  NA  1.00  0.79 -0.71  0.89 -0.43
hp    NA    NA  1.00 -0.45  0.66 -0.71
drat  NA    NA    NA  1.00 -0.71  0.09
wt    NA    NA    NA    NA  1.00 -0.17
qsec  NA    NA    NA    NA    NA  1.00

#melt the correlation matrix
library(reshape2)
melted_cormat <- melt(upper_tri,na.rm = T)
4. 美化矩阵热图
# Heatmap
ggplot(data = melted_cormat, aes(x=Var2, y=Var1, fill = value)) +
  geom_tile(color = "white") +
  scale_fill_gradient2(low = "blue", high = "red", mid = "white",
                       midpoint = 0, limit = c(-1, 1), space = "Lab",
                       name="Pearson\nCorrelation") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, 
                                  size = 12, hjust = 1)) +
  coord_fixed()
  • Rplot02.png
5. 添加相关系数
#Add correlation coefficients on the heatmap
ggplot(data = melted_cormat, aes(x=Var2, y=Var1, fill = value)) +
  geom_tile(color = "white") +
  scale_fill_gradient2(low = "blue", high = "red", mid = "white",
                       midpoint = 0, limit = c(-1, 1), space = "Lab",
                       name="Pearson\nCorrelation") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, 
                                   size = 12, hjust = 1)) +
  coord_fixed() + 
  geom_text(aes(Var2, Var1, label = value), color = "black", size = 4) 

  • 03.png

相关文章

  • R绘图_ggplot2速绘相关性矩阵热图

    火狐截图_2020-02-11T08-36-22.554Z.png ggplot2 : Quick correla...

  • 【RNA-Seq 实战】五、表达矩阵探索

    1 导入R 获取矩阵后正式开始下游分析。 2 绘图 相关性图 相关性热图 后续我们使用airway包的数据进行后续...

  • R: 相关系数

    ref:R画月亮阴晴圆缺:corrplot绘图相关系数矩阵 ref:R语言学习笔记之相关性矩阵分析及其可视化 - ...

  • ggcorr()绘制相关性热图

    ggcorr()是一个基于ggplot2,进行相关性矩阵可视化的R包。 官方说明书:https://briatte...

  • ggplot2绘制相关性热图(heatmap)

    你只是想画个相关性热图!!!! 生信分析中经常要做基因与代谢物之间的相关性热图,R中号称绘制相关性热图的包有许多,...

  • 线性代数 01

    矩阵的初等变换初等变换 秩为r的矩阵初等行变换 逆矩阵求逆矩阵 分块矩阵求逆矩阵分块矩阵 线性相关性线性相关性 R...

  • R绘图函数

    R语言四大作图系统: 基础绘图系统 lattice包 ggplot2包 grid包 R绘图分类: 高级绘图(搭好框...

  • 瑞德学习R语言day03

    factor(变量) 因子类型的转化 R语言绘图 使用ggplot2绘图导入依赖 绘制柱状图 统计一组数中元素的情...

  • 11-23-1、2绘图

    一、绘图基本概念 相关R包:作图(ggplot2),拼图(patchwork),导出(eoffice) 基础包绘图...

  • R可视化——ggplot2绘制柱状堆积图并添加连线

    安装、加载R包 构造数据并对其进行处理 绘图 1、绘制柱状堆积图 2、使用ggplot2拓展包ggalluvial...

网友评论

    本文标题:R绘图_ggplot2速绘相关性矩阵热图

    本文链接:https://www.haomeiwen.com/subject/gycrlhtx.html