R语言数据可视化常用软件包全解析
R语言数据可视化常用软件包全解析
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化。