首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高维数据 | R语言数据可视化之热力图

高维数据 | R语言数据可视化之热力图

作者头像
黑妹的小屋
发布2020-08-06 15:07:24
2.2K0
发布2020-08-06 15:07:24
举报

R语言数据可视化之热图

热力图,在生信研究中是最常见的数据表现手法之一。特别是展示各种基因或RNA在不同样本中的表达情况,了解其表达模式。热图其实是将有规则的矩阵转化成或者映射成颜色色调的一种可视化方法。在实际应用中,由高通量测序得到的几万个基因或者几千个样本的表达量数据通过分组或K均值聚类算法得到热图。

01

随机生成数据

> set.seed(12345)
>  d1<-data.frame(matrix(rnorm(160,13,8),ncol=10))
> d1
          X1         X2        X3        X4        X5        X6        X7        X8         X9         X10
1  17.684231  5.9091398 29.393523 17.665501  8.304963 18.163065  8.959652 23.089938 -3.9883990 13.12684554
2  18.675728 10.3473793 26.059565  2.545609 -1.659018 21.345148 30.261759 23.553854  3.4317479 17.32135654
3  12.125573 21.9657012 15.034170  8.676911 20.105115 10.565047  8.201619 12.353970 26.1375359  0.62166426
4   9.372023 15.3897896 16.929506 28.581541 25.747908 32.816887  7.443626  8.959282 20.0692387 19.79722344
5  17.847100 19.2369754 10.407307 13.428722 17.134837 20.769765 14.791403 12.582771 17.1990071 20.16810547
6  -1.543648 24.6462807 -0.296402 15.813303  2.634627 27.936793  3.750213 18.030885  3.5227275 14.10952797
7  18.040788  7.8453726 27.141871  7.632188 13.436925 18.376340 16.379348 30.440019 34.2463062  0.04537342
8  10.790527  0.5749008 13.206408 15.223630  6.722805 10.536373  2.401958 12.447862  4.6166903 17.38718338
9  10.726722  0.2183239 22.028087 18.529370  4.605177 17.292190 14.128675 25.358909  4.9110198 14.56225723
10  5.645424 27.4407802 -6.042864 19.590363 31.644096 19.598961  8.711616 23.571616 18.3513732  6.54801604
11 12.070018  9.1468211  4.517876 30.160520 24.221643  5.288788 10.507151 15.577213 14.0334183 12.13100612
12 27.538496 17.9630384 20.497124 -5.775552 20.540807  6.159340 25.448877 25.247641  9.6193851 10.99242701
13 15.965023 17.8969879 19.835614 14.196736 19.610066 28.095576  9.415734  9.630082  3.8778868 26.59477335
14 17.161732 11.7015122 24.685835  2.259748  6.507676  9.865445 15.568988  3.729432  2.6502777 10.24560963
15  6.995744 19.4949854  1.695210 17.426425 16.809986  5.154936  3.158622 -1.762946  8.2424098 13.54217649
16 19.535199 30.5746684 17.539226 25.719703 21.170067 18.498657  2.407530 22.258602  0.9934874  7.79544219
> colnames(d1)<-LETTERS[1:10]
> rownames(d1)<-letters[1:16]
> d1
          A          B         C         D         E         F         G         H          I           J
a 17.684231  5.9091398 29.393523 17.665501  8.304963 18.163065  8.959652 23.089938 -3.9883990 13.12684554
b 18.675728 10.3473793 26.059565  2.545609 -1.659018 21.345148 30.261759 23.553854  3.4317479 17.32135654
c 12.125573 21.9657012 15.034170  8.676911 20.105115 10.565047  8.201619 12.353970 26.1375359  0.62166426
d  9.372023 15.3897896 16.929506 28.581541 25.747908 32.816887  7.443626  8.959282 20.0692387 19.79722344
e 17.847100 19.2369754 10.407307 13.428722 17.134837 20.769765 14.791403 12.582771 17.1990071 20.16810547
f -1.543648 24.6462807 -0.296402 15.813303  2.634627 27.936793  3.750213 18.030885  3.5227275 14.10952797
g 18.040788  7.8453726 27.141871  7.632188 13.436925 18.376340 16.379348 30.440019 34.2463062  0.04537342
h 10.790527  0.5749008 13.206408 15.223630  6.722805 10.536373  2.401958 12.447862  4.6166903 17.38718338
i 10.726722  0.2183239 22.028087 18.529370  4.605177 17.292190 14.128675 25.358909  4.9110198 14.56225723
j  5.645424 27.4407802 -6.042864 19.590363 31.644096 19.598961  8.711616 23.571616 18.3513732  6.54801604
k 12.070018  9.1468211  4.517876 30.160520 24.221643  5.288788 10.507151 15.577213 14.0334183 12.13100612
l 27.538496 17.9630384 20.497124 -5.775552 20.540807  6.159340 25.448877 25.247641  9.6193851 10.99242701
m 15.965023 17.8969879 19.835614 14.196736 19.610066 28.095576  9.415734  9.630082  3.8778868 26.59477335
n 17.161732 11.7015122 24.685835  2.259748  6.507676  9.865445 15.568988  3.729432  2.6502777 10.24560963
o  6.995744 19.4949854  1.695210 17.426425 16.809986  5.154936  3.158622 -1.762946  8.2424098 13.54217649
p 19.535199 30.5746684 17.539226 25.719703 21.170067 18.498657  2.407530 22.258602  0.9934874  7.79544219
>  d2<-data.frame(matrix(rnorm(160,14,5),ncol=10))
> rownames(d2)<-letters[1:16]
> colnames(d2)<-LETTERS[1:10]
> d2
          A         B         C         D        E         F         G         H         I         J
a 11.561807 26.417750 17.933979 14.485521 22.95666 10.499621 11.924895 16.884252 18.860425 13.412658
b 15.515756 16.006825 15.504747 13.616332 17.36134 11.162992 11.702122  3.434598 17.779350 14.191049
c 12.790130 15.075886 20.551120 18.959753 12.95349 12.693030 10.037530 15.304548 11.858572 19.974028
d 11.591332  4.921438 17.992169  9.703746 14.06091  8.680575  8.207304 19.735636 10.430376 15.719792
e  9.040986  9.441303 18.254302 12.592102 21.67058 13.468157 17.554450 14.073968 13.048080 12.354635
f 12.596754 13.754777 11.782160 24.331236 14.38646 17.855519 20.338009 12.441304 15.999324 22.354290
g 17.165087 11.973063 11.766126 10.942235 14.39219 27.737018 13.284245  9.219019  9.110775  9.409709
h  7.800908 19.651909 14.066525 15.578064 10.10369 13.580326 11.424855 16.367069 14.918685 13.560963
i 22.821570 18.077324  6.819271 17.301467 14.83280 16.717838 21.414456  6.430680  3.248447 20.601469
j 13.881601 14.382088 10.853702  5.388988 15.32662 17.764306 13.187055 14.821405 10.885167 22.653931
k 14.999602 21.268737 15.217609  3.326870 18.45390  9.956629 14.208546  9.645674 10.172803 24.812980
l 20.735964 15.870605 19.291811 14.344728 11.66056 19.005599 16.415199 21.966645 16.321547 12.421338
m 14.180367 13.145480 18.156744 18.339109 17.79187 16.280263  8.099364 17.232988 16.611411 11.124519
n 18.122906 11.488936 14.526059  2.549779 10.79132  6.828748 10.682131 15.786848 14.048969  6.968218
o  5.486641 16.717611  5.291435 13.249049 17.13836 12.673476 10.826751 14.511965 11.797369 25.339299
p 16.404751 11.474070 17.226235 12.656091 15.24165 17.208846 10.490185 10.623666 19.997448 10.145730

02

色彩搭配选择

> Color<-colorRampPalette(rev(brewer.pal(n=9,name="RdBu")))(160)
> Color
  [1] "#4575B4" "#4979B6" "#4E7DB8" "#5282BB" "#5786BD" "#5C8BBF" "#608FC2" "#6594C4" "#6998C6" "#6E9DC9" "#73A1CB" "#77A6CE" "#7CAAD0" "#80AFD2" "#85B3D5" "#8AB8D7"
 [17] "#8EBCD9" "#93C0DB" "#98C3DD" "#9CC6DF" "#A1CAE1" "#A6CDE2" "#ABD0E4" "#B0D3E6" "#B4D6E8" "#B9D9E9" "#BEDCEB" "#C3E0ED" "#C8E3EF" "#CCE6F0" "#D1E9F2" "#D6ECF4"
 [33] "#DBEFF6" "#E0F3F7" "#E1F3F4" "#E3F4F1" "#E5F5ED" "#E7F5EA" "#E9F6E6" "#EBF7E3" "#EDF8DF" "#EFF8DC" "#F0F9D8" "#F2FAD5" "#F4FBD2" "#F6FBCE" "#F8FCCB" "#FAFDC7"
 [49] "#FCFDC4" "#FEFEC0" "#FEFEBD" "#FEFCBA" "#FEFAB7" "#FEF8B5" "#FEF6B2" "#FEF4AF" "#FEF2AC" "#FEF0A9" "#FEEFA6" "#FEEDA3" "#FEEBA1" "#FEE99E" "#FEE79B" "#FEE598"
 [65] "#FEE395" "#FEE192" "#FEDF8F" "#FDDA8C" "#FDD589" "#FDD085" "#FDCB82" "#FDC67F" "#FDC17B" "#FDBC78" "#FDB775" "#FCB271" "#FCAD6E" "#FCA86B" "#FCA367" "#FC9E64"
 [81] "#FC9961" "#FC945D" "#FC8F5A" "#FA8A57" "#F88454" "#F67E51" "#F4794E" "#F1734B" "#EF6D48" "#ED6845" "#EB6242" "#E85D3F" "#E6573C" "#E45139" "#E24C36" "#DF4633"
 [97] "#DD4030" "#DB3B2D" "#D9352A" "#D73027"

03

将值映射到颜色

>  breaks<-seq(min(unlist(c(df1,df2))),max(unlist(c(df1,df2))),length.out=160)> breaks  [1] -6.04286449 -5.78947348 -5.53608247 -5.28269146 -5.02930045 -4.77590944 -4.52251843 -4.26912742 -4.01573641 -3.76234540 -3.50895439 -3.25556338 -3.00217237 [14] -2.74878135 -2.49539034 -2.24199933 -1.98860832 -1.73521731 -1.48182630 -1.22843529 -0.97504428 -0.72165327 -0.46826226 -0.21487125  0.03851976  0.29191077 [27]  0.54530178  0.79869279  1.05208380  1.30547481  1.55886582  1.81225683  2.06564784  2.31903886  2.57242987  2.82582088  3.07921189  3.33260290  3.58599391 [40]  3.83938492  4.09277593  4.34616694  4.59955795  4.85294896  5.10633997  5.35973098  5.61312199  5.86651300  6.11990401  6.37329502  6.62668603  6.88007704 [53]  7.13346805  7.38685906  7.64025008  7.89364109  8.14703210  8.40042311  8.65381412  8.90720513  9.16059614  9.41398715  9.66737816  9.92076917 10.17416018 [66] 10.42755119 10.68094220 10.93433321 11.18772422 11.44111523 11.69450624 11.94789725 12.20128826 12.45467927 12.70807029 12.96146130 13.21485231 13.46824332 [79] 13.72163433 13.97502534 14.22841635 14.48180736 14.73519837 14.98858938 15.24198039 15.49537140 15.74876241 16.00215342 16.25554443 16.50893544 16.76232645 [92] 17.01571746 17.26910847 17.52249948 17.77589050 18.02928151 18.28267252 18.53606353 18.78945454 19.04284555 19.29623656 19.54962757 19.80301858 20.05640959[105] 20.30980060 20.56319161 20.81658262 21.06997363 21.32336464 21.57675565 21.83014666 22.08353767 22.33692868 22.59031969 22.84371070 23.09710172 23.35049273[118] 23.60388374 23.85727475 24.11066576 24.36405677 24.61744778 24.87083879 25.12422980 25.37762081 25.63101182 25.88440283 26.13779384 26.39118485 26.64457586[131] 26.89796687 27.15135788 27.40474889 27.65813990 27.91153091 28.16492193 28.41831294 28.67170395 28.92509496 29.17848597 29.43187698 29.68526799 29.93865900[144] 30.19205001 30.44544102 30.69883203 30.95222304 31.20561405 31.45900506 31.71239607 31.96578708 32.21917809 32.47256910 32.72596011 32.97935112 33.23274214[157] 33.48613315 33.73952416 33.99291517 34.24630618

04

热力图绘制与排布组合

>  p1<-pheatmap(d1,color=Color,breaks=breaks,border_color="white",legend=TRUE)
>  p2<-pheatmap(d2,color=Color,breaks=breaks,border_color="black",legend=TRUE)
>plot_grid(p1$gtable,p2$gtable,align='vh',labels=c("A","B"),ncol=2)

小结

1、pheatmap包的详细教程

http://127.0.0.1:16592/library/pheatmap/html/pheatmap.html

2、cowplot包的使用手册

https://cran.r-project.org/web/packages/cowplot/index.html

3、ggplot2包的参考手册

https://cran.r-project.org/web/packages/ggplot2/index.html

4、RColorBrewer配色方案

https://cran.r-project.org/web/packages/RColorBrewer/index.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 菜鸟学数据分析之R语言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档