在关于R语言数据可视化方面,最常用的R软件包通常有:
1: R基础可视化包graphics
安装好R后,会自动加载一个数据可视化包graphics,它含了R的基本绘图功能,可以绘制常用的直方图、线图、点图、饼图、密度曲线、三维透视图等。
2: ggplot2包及其拓展包
在基于R语言的数据可视化方面,ggplot2包已经发展成为最受欢迎的R包,并且在ggplot2包的基础上,还衍生出了各种各样的R包用来丰富ggplot2的绘图功能,将这些包和ggplot2包结合使用,能够获得更加精美的图像。
2.1: ggiraphExtra包
ggiraphExtra是绘制可交互ggplot2图像的一个包,它扩展了ggplot2和ggiraph两个包的数据可视化方式,增强了它们的可交互图像的能力。
2.2: GGally包
GGally包是通过添加几个函数来扩展ggplot2,将数据可视化变的更加简单,在数据转换方面更加简便。GGally包通常用于可视化矩阵散点图、平行坐标图、社交网络图等。
2.3: ggChernoff包
ggChernoff包为ggplot2引入了一个geom_chernoff()函数,该函数的功能和geom_point()很像,只是它绘制时利用一些表情符号(比如笑脸等)来代替点。
2.4: ggTimeSeries包
ggTimeSerise包提供了一些新颖的时间序列数据可视化功能,可以在ggplot2包的基础上绘制出更让人感兴趣的时间序列图像,例如日历图、蒸汽图等。
2.5: treemapify和ggpol包
treemapify是一个基于ggplot2包对树图(Treemap,主要是矩形树图)进行可视化的包。ggpol是基于ggplot2包用于绘制议会图(结构像议会现场的扇环型座席分布)的可视化包,同时还添加了其他的可视化方法,如可视化混淆矩阵、突出显示区域的时间序列图等。
2.6: ggridges和gganimate包
ggridges是基于ggplot2包专门用于可视化脊线图的包。脊线图是部分重叠的线图,可产生山脉的形象,对可视化时间或空间分布的变化非常有效。
gganimate是将ggplot2包的可视化图像转化成动画的包,动画图像不仅具有视觉上的冲击力,而且能够传递更多的信息,可以对数据进行宏观分析。
2.7: ggfortify包
ggfortify是一个基于ggplot2的拓展包,它包含autoplot()函数,可以只用一行代码就可对主成分分析、聚类分析、回归分析、时间序列分析等方法的统计结果,以ggplot2的风格进行可视化,大大提高了数据分析的效率。
3: 热力图数据可视化包pheatmap
热力图是一个以颜色变化来显示数据的矩阵图形。R中有多个可视化数据热力图的包,其中pheatmap包用来可视化静态的热力图,d3heatmap包和heatmaply包可以可视化可交互的热力图。
4: 缺失值可视化包VIM和naniar
其中naniar包的缺失值可视化图像是基于ggplot2包的,所以可以将图像更好的和ggplot2包结合,对图像进行调整。
5: 词云图数据可视化包wordcloud2
在R中,有两个常用的可视化词云的包,分别是静态可视化词云包wordcloud和动态可视化词云包wordcloud2。
6: 社交网络图数据可视化包
网络数据(或图数据)是一种重要的非结构化数据,不仅包含人与人之间的社交网络,还包含事物之间的各种联系,它们规模庞大、关系复杂、不易观察,网络数据的可视化成为数据挖掘的重要研究内容之一。
6.1: igraph包
igraph包是用来解决图与网络问题并对其进行可视化的包。
6.2: visNetwork
visNetwork是一个专门用于可视化可交互网络图的R包,并且可以和igraph包获得的图数据相互调用。
其它的包中,networkD3包可以轻松创建基于Htmlwidgets框架的网络图,它支持力导向图、桑基图、树形图等三种类型的网络图。threejs包使用three.js和R的htmlwidgets包提供了绘制交互式的3D散点图、3D网络图和地球仪图的功能,其中3D网络图可以在三维空间分析节点之间的联系。
7: R语言的地图数据可视化包
地图信息数据可视化,常用于可视化与地理位置相关的数据。地图的引入,可以使读者在理解数据的大小、关系、变化趋势的同时,进一步分析数据在地理位置上的对应关系,从而传递更多有用的信息。R中绘制静态地图的常用R包有maps、ggmap、tmap包,其中tmap包还常用于制作地图动画,而leaflet、mapview等包常用于绘制可交互地图。
7.1: ggmap包
ggplot2包可以实现将地理信息数据进行可视化,而ggmap包是基于ggplot2可视化地图的拓展包,其绘图方法与ggplot2类似,两者相结合可以更方便的对地图数据进行可视化。
7.2: tmap包
tmap是R中较专业的地图数据可视化包,由Martijn Tennekes编写,主要用于绘制主题地图,与ggplot2包的“图形的分层语法”相同,可通过“+”来添加不同的图层。
7.3: leaflet包
leaflet是一个很受欢迎的用于可交互式地图的开源JavaScript包,使用该包绘制可交互地图具有很多优点,包括可以交互式平移、缩放地图;在地图上添加地图图块、标记、多边形、线、弹出窗口;将地图嵌入knitr、R Markdown文档或shiny应用程序中等。
7.4: mapview包
mapview是在leaflet包的基础上进一步封装的包,它可以快速、方便地对空间数据进行可视化,并且可以使用更少的程序绘制可交互式地图。在mapview包中,使用一个mapview()函数即可完成可交互地图的可视化。
8: R语言制作交互式数据分析应用
8.1: Shiny包
shiny是通过R直接构建交互式Web应用程序的软件包,由RStudio公司开发,它可以让用户与数据、分析进行交互操作,获取更加直观、丰富的信息。
8.2: flexdashboard包
与shiny包类似,flexdashboard包支持以更简单、轻量级的方式构建数据可视化仪表盘,它通过R Markdown文件将数据进行可视化,并发布为网页形式的可视化仪表盘。flexdashboard包支持网页小部件、基本的网格图形、表格数据和文字注释等多种组件,还具有调用shiny中的小部件的功能。
9: R语言交互式数据数据可视化plotly
plotly包是功能齐全的可交互数据可视化包,不但提供了多种编程语言接口来方便数据可视化,而且plotly包与R语言的结合较好。其还提供了将ggplot2包输出图像转化为可交互图像的方法。而且针对可交互的3D可视化图像,plotly包的可交互效果和渲染效果较好,且可以绘制各种各样的3D图像,如散点图、气泡图、曲面图等。
10: 3D图像可视化包
10.1: scatterplot3d包可视化3D散点图
10.2: plot3d包可视化3D图
10.3: rayshader包
rayshader包将ggplot2的可视化图像3D化。
本文中的内容参考自书籍《R语言数据可视化实战 微视频全解版 大数据专业图表从入门到精通》——孙玉林,薛震编著。学习更多的关于R语言数据可视化的内容。书籍QQ交流群(689669836),欢迎大家的加入相互交流学习。