常用的可视化R包汇总
本文将简要盘点R中常用的可视化包,并通过简要介绍包的特点来帮助读者深入理解可视化包。
如果最近浏览了R包的目录,你会发现可用包的数量已经达到了1w多个,足以让人眼花缭乱。这意味着现有的包几乎足以解决所有你能想象到的数据可视化任务,从癌症基因组可视化到图书的可视化分析。
对于R菜鸟或想提升R数据可视化能力的人来说,CRAN目录看起来是一种尴尬的富有——数据可视化的包过多,不知从何入手。
为了解决这种问题,今天我们要盘点26个实用的R数据可视化包。
1.名称:ggplot2包
简介:将绘图与数据分离,按图层作图,一个语句代表了一张图;将常见的统计融入了绘图中。参数设置包括:1)图形属性(aes) (横纵坐标、点的大小、颜色,填充色等);2)几何对象(geom_) 上面指定的图形属性需要呈现在一定的几何对象上才能被我们看到,这些承载图形属性的对象可能是点,可能是线,可能是bar;3)统计变换 (stat_)比如求均值,求方差等,当我们需要展示出某个变量的某种统计特征的时候,需要用到统计变换。
缺点:无法调节多个legends;绘图效率不高,速度慢;对公式的支持不友好。
2.名称:ggpubr
简介:R包是 ggpubr,它是一款基于ggplot2的可视化包,功能异常强大,能够简单的一行命令就可以绘制出符合出版物要求的图形。ggpubr包可绘制几乎60%的sci图形类型多,有直方图、柱状图、饼图、棒棒糖图、Cleveland 点图、箱线图、小提琴图、点图、散点图、误差棒图,并且方便拼图,加上统计分析的结果 p值标记。
缺点:它的p值可能和直接的R统计结果有一点点差异。
3.名称:RColorBrewr包
简介:提供3套配色方案,连续型,渐变色;极端型可生成离群点;离散型形成彼此差异明显的颜色标记分类数据。参数设置包括:1)连续型9种颜色;极端型11种颜色等2)配色高大上,基本满足大部分的使用场景3)可以生成多种自己喜欢的颜色库。
4.名称:ggsci包
简介:ggsci提供了包括nature/cell/JCO等多个顶刊的推荐配色方案,使用palette可以直接在ggplot2基础上添加配色,告别审美不过关的问题,用顶刊的逼格弥补自己的审美,配色再也不是画图丑的原罪了。
5.名称:ggannotate包
简介:在github上,对于ggplot2觉得调legends的位置,图形形状觉得费力的同学,可以使用ggannotate进行交互式修图,让你使用R有一种使用Graphpad prism的快乐。
6.名称:patchwork包
拼图的极致!命令可读性极强!通过 、|和/三个操作符即可轻松实现拼图,配合圆括号( )实现更加复杂的拼图!
7.名称:Plotly
简介:Plotly更多是因为其在线绘图工具的属性为人所知,比如GEPIA网站中一个热图的可视化就用到了plotly的外接,但其实他也是一个可视化R包。优点是提供了一些其他包中没有的图表如等值线,蜡烛图还有3D图。
8.名称:ggstatsplot
简介:ggstatsplot能够提供更为丰富信息的包,其实就是画出高质量的图,不需要我们花费过多的精力去调整绘图细节,举个例子,一般的探索性数据分过程析包括数据可视化与数据统计两个部分,而ggstatsplot正是达到两者结合的目的。
有组间比较-ggbetweenstats、配对比较、ggwithinstats组内比较等功能。
缺点:虽然图的信息量大,但有时比如presentation,时间不够,图信息过多反而不利于简明扼要的传达信息。
9.名称:complexheatmap
简介:complexheatmap是古祖光博士开发的一个R包,可以绘制各种复杂的热图,并且目前已经完全把pheatmap的一切功能都包含进来了,可以随便添加各种legend,对热图进行各种高级的展示,经常在cns期刊可以见到这个包的使用。
缺点:legednd的操作还是有一点复杂。
10.名称:pheatmap
简介:pheatmap是目前用的到做多的绘制热图的一个R包,他可以通过一个矩阵和一个legend配置文件轻松完成热图绘制.对于入门级的朋友非常友好。
缺点:绘制复杂的热图还是逊于complexpheatmap。
11.名称:RGL包
简介:可以使用RGL包得到交互的3D图,接受一个X,Y,Z的变量组合的数据框来描述数据,入门比较容易,同时也有很多炫酷的技能,包括可以选择形状、灯效、物体质感等。
缺点:坐标标记难调整,图形效果也有一定审美的缺陷。
12.推荐:ggcorrplot
推荐理由:在平时科研作图里面很常需要用到相关矩阵以及相关性的表示里面,比较基础的就是这个包了,它的优点就是在于能表示出P VALUE。用比较接地气的话,可以画出又圆又方或者点的图,图像美观、大方,可塑性强,新手容易上手。
缺点:需要以ggplot2为基础,同时一般来说,分类变量要剔除,只画连续型变量(这也是相关矩阵图的前提)。
13.名称:ggtech
简介:ggtech对于缺乏色彩感的人来说简直是一个宝藏。在github https://github.com/ricardo-bion/ggtech可以看到。需要先安装好devtools和curl两个包,然后可以从github上安装最新版的ggplot2和ggtech。ggtech是新版ggplot2的科技主题包,综合了Etsy,Facebook,Google以等科技公司的主题配色。
缺点:跟ggplot2比可能不够亮丽。
14.名称:Lattic包
简介:基于grid包开发的Lattic包含了grid包大部分的功能,尤其对于多变量数据进行可视化,简直是第一杀器,能够直接生成画板,并且比较变量的不同分组或者不同子集,不用循环也能批量出图,绘图逻辑基本跟grid包一致。
15.名称:ggthemes
简介:ggthemes将一些期刊、软件的图表风格进行了整理,做成扩展包,方便地格式化出不同风格的图表。
16.推荐:suevminer
简介:这个是做生存分析里面最基础的R包了。可以根据数据绘制出你想要的结果,还能通过选择pval=TRUE会显示两组差异检验结果的pvalue。可谓是集大成于一体了。
17.名称:recharts
简介:recharts是一个绘制交互式图形的R包。从此我们见到的图不再是静态的,可以一直动态的展示.Recharts是基于Echarts开发的R版本,由Yang Zhou和TaiyunWei开发,对比Python的ploty库,是一个非常好的可视化工具,直接通过github即可以安装。
缺点:需要移植更多的ploty更多功能,让其更强大,对文字的显示更友好。
18.推荐:ggcorrgram
简介:同样绘制相关矩阵以及相关性图片的选择之一,比起大众化ggcorrplot,ggcorrgram画出的图片有种高大上的风味,直接一行代码出图就帮你把其他参数设置得明明白白,最重要不需要提前计算好相关矩阵,输入数据即可自动计算,新手易上手的同时还能让画出来的图片有老司机的感觉。
19.推荐:ggcorrgram
简介:同样绘制相关矩阵以及相关性图片的选择之一,比起大众化ggcorrplot,ggcorrgram画出的图片有种高大上的风味,直接一行代码出图就帮你把其他参数设置得明明白白,最重要不需要提前计算好相关矩阵,输入数据即可自动计算,新手易上手的同时还能让画出来的图片有老司机的感觉。
20.名称:rms
简介:rms是一个计算和绘制列线图的R包。列线图我们知道在临床数据分析有举足轻重的地位,相比于多因素回归的公式预测模型有更加直观及快速评估预测结局。有了rms包之后,绘制列线图简单。
缺点:暂时没得。
21.名称:FactoMineR
简介:FactoMineR是一个计算和绘制PCA的R包。pca绘图哪家强,FactoMineR一定是N0.1,显示最重要的PC组分,显示那个变量对组分的贡献大,简单搞定。各种PCA分类图,椭圆图简单绘制。
缺点:暂时没得。
22.名称:pROC
简介:做诊断性模型的时候,最常用的选择最佳cutoff的方法就是使用ROC曲线。pROC包对于 ROC曲线的的绘制和分析可谓得心应手。
23.推荐:ggfortify
简介:最开始在初学R的时候,一开始就知道如果要表达时间序列可以用最基本的ggplot2来实现。但是接触了ggfortify你就能打开人生的新天地,找到人生的新世界。在时间序列分解图或者平滑预测图等方面,ggfortify绝对能甩ggplot2好几条街,同时就肩负有线性回归、聚类分析、概率分布等图形绘制,兼容并蓄。
24.名称:ggbiplot
简介:如果你觉得FactoMineR绘制PCA有些复杂,那么来试试ggbiplot吧。一个矩阵,一个分组文件,是否显示坐标轴,三个参数到位,一个精美的PCA图就来了 。想加上椭圆没问题,设置ellipse为T,想加上箭头没问题,var.axes=T.
缺点:加上三维展示更好。
25.名称:UpsetR
简介: 如果你觉得已经厌倦了普通的韦恩图来可视化集合的交集情况,并且你的集合过多,比如超过5个。那就用UpsetR吧。UpsetR 可以很好地展示多个集合之间的关系,并且让你有空间三维图的感觉,多维度展示信息。
缺点:集合数<5的不如普通的韦恩图。
26.名称:maftools
简介:我是在学习肿瘤突变负荷TMB时发现这个包的,对于TMB是必学的包,一行代码(是的,没看错,一行代码)可以轻松画出summary图、瀑布图、云图等TMB的常见图形。另外maftools对WGS和WES数据进行上游分析之后,进行somatic mutation分析的一个非常好用的包,用非常简短的几行代码即可出图。
缺点:
1.对于突变的注释位置信息不全,比如没有stopgain。
2.里面有很多已经废弃的不能用的函数。