12个ggplot2拓展程序助你强化R可视化

大数据 数据可视化
如果你是世界上众多ggplot2爱好者之一,你可能有时会发现自己正在寻找出色的软件包来拓展其功能。本文将为大家简要介绍12个ggplot2拓展程序,包括它们让R可视化更强大的原因以及相应的具体示例。

本文将为大家简要介绍12个ggplot2拓展程序,包括它们让R可视化更强大的原因以及相应的具体示例。 

自2007年推出以来,ggplot2已经成为世界上下载最频繁、应用最广泛的R包之一。包括它的创造者Hadley Wickham在内,许多人将这一成就归功于ggplot2背后的理念。这个包的灵感来自Leland Wilkinson关于数据可视化的开创性文章《图形语法》(The Grammar of Graphics),这篇文章将图形分解成刻度和层次等语义组件,并将数据从表示中分离出来。

如果你是世界上众多ggplot2爱好者之一,你可能有时会发现自己正在寻找出色的软件包来拓展其功能。幸运的是,在过去的10年里,R社区一直致力于构建ggplot2的拓展包。今天我们推荐了12个我们最喜欢的ggplot2拓展程序,以帮助你为你的ggplot2赋予更多的能量,增加更多的光彩——或者只是为了更方便地创建图表。

1. gganimate 


动态演示人均GDP随时间的变化

数据源自从GAPMPEDER数据(David Robinson)

喜欢你的gglot 可视化,但希望它有更多的运动部件?gganimate可以帮助你解决这个问题。像ggplot2处理x,y,颜色等一样,这个包将“帧”(即动画中的时间点)作为一个美学单元处理,从而使得ggplot2的可视化“活”起来。结果是一个从相同图的不同帧中构建出来的动画。

正如你在上面的例子中所看到的,gganimate画出的图的坐标轴范围和图例不变,只有点在移动,这样观察者的注意力可以集中在数据如何随时间变化上。这也意味着,和动画扩展包(你创建多个图,并将它们组合起来)不同的是,gganimate只需要构建图一次,包括坐标轴和图例。

gganimate还允许你将动画保存成文件,如GIF,视频或动态网页,以便在RStudio和NoteBook之外使用。

创建者:David Robinson

2. gganimate 


美国各州逮捕的聚类分析(Andrie de Vries)

如果你想控制聚类分析的外观和展示,那就从ggdendro开始吧!虽然R确实有聚类功能,但它只允许你直接绘制树形图,并不能分离出或显露基础数据。ggplot2的理念是致力于将数据从表示中分离出来,以便更好地控制数据的显示方式。

ggdendro提供了一个解决方案。它有几个提取树形图数据的有用函数,所以你可以保存或者操作数据本身。旋转树形图,移除网格背景(如上例所示),反转刻度,绘制三角形线段,创建DIANA和AGNES聚类图,等等。将它和dendextend 、ape两个包结合起来,就可以完全地控制你的树形图。

创建者:Andrie de Vries,可以在Mode上找到。

可以在Mode上(https://modeanalytics.com/signin)试试ggdendro。

3. gganimate 


Motor Trend汽车数据集,“Highcharts”主题(Asha Hill)

如果你想让你的分析看上去可信,请看看ggthemes。这个多功能的库包含的主题和刻度让你可以直接复制数据可视化巨头的报告的外观。这些巨头包括爱德华·塔夫特(Edward Tufte)、Fivethirtyeight、经济学家、华尔街日报、Highcharts JS等。

甚至还包含了一些讽刺性的内容,例如Excel 2013主题,可以让你复制“经典丑陋的外观和感觉”(附注:“请永远都不要使用”)。

创建者:Jeffrey B. Arnold,可以在Mode上找到。

4. gganimate 


具有比较p值的箱线图(Alboukadel Kassambara)

ggplot2是灵活而强大的,但是对于那些没有强大的R技能的人来说并非总是那么友好。由于许多研究出版物需要R图表,平常不使用R的研究人员经常需要根据需求生成高度定制的R图表。这就是ggpubr存在的原因:使用ggpot2(即使你还不知道如何使用ggplot2)可以很容易地生成为出版物定制的图表。

ggpubr 实际上是一个包装器,它可以使用更直观的语法帮助刚入门R的人生成复杂的图。该包允许你向图表添加p值和显著性水平,并在同一页中排列或注释多个图。它还可以轻松更改颜色和标签等格式元素。

创建者:Alboukadel Kassambara

5. gganimate 


Motor Trend汽车数据的网格拼图(Thomas Pedersen)

如何在同一个NoteBook中排列多个R图?为了处理多变量数据,你可以使用Lattice等包。但是当你需要处理一些有关联的图时,patchwork是个更好的选择。

这个名称恰到好处的包提供了容易使用的数学运算符,用于在单个空间中组合和排列多个图。为了将图放在其他图的旁边,只需要使用+运算符即可。为了将图放在其他图的顶部,只需要将/用于垂直布局上。所有patchwork的运算符都可以组合成一个高度可读的布局语法。

创建者:Thomas Pedersen

6. gganimate 


鸢尾花数据集的山脊线图,颜色显示尾部分布概率(Claus O. Wilke)

山脊线图是部分重叠的线图,它的名字源于它与山脉存在相似之处。(Heyo Joy Division.)它们特别适用于可视化分布随时间、空间或其他连续变量的变化。

由于山脊线图相对较新,ggplot2没有创建它们的原始方式。ggridges 是为了填补这一空缺而创建的。该库提供计算和绘制密度估计、沿x轴改变填充颜色以及计算和可视化不同分布统计数据(如添加分位数信息)的方法。你还可以绘制原始数据点,有“雨云”到“地毯式”多种选择可供生成分布。

创建者:Claus O.Wilke,可以在Mode上找到。

7. gganimate 


ggmap做出的休斯敦犯罪密度图(David Kahle)

ggmap是一个功能强大的包,用于可视化空间数据和模型。他将数据置于从主流在线地图(如谷歌地图、OpenStreetMap和Stamen Maps)导出的静态地图之上。

ggmap 的优点在于,它使得ggplot2上的geoms可用于地图可视化。这意味着你可以在地图上创建等高线图或散点图,或者在多个地图上创建分层数据。你可以在许多不同风格的谷歌地图或者Stamen 地图上创建ggplot可视化图,从卫星图和路线图都可以——为你处理空间数据提供了***的灵活性。

创建者:David Kahle

8. gganimate 


比较geom_text()和geom_text_repel()处理后的标签(Kamil Slowikowski)

ggrepel只有一个非常有用的目的:让ggplot2用户更好地控制图表中文本标签的位置。正如每个R编程人员所知道的那样,ggplot2处理文本标签的默认方式有时不太理想。(看看上面左边的图表)

ggrepel通过为ggplot提供文本和标签的位置信息来解决这个问题,这将有助于避免各种难看的标签。你可以将便签设置为简单地与其他标签、数据点或者图的边界隔离开。或者,你可以选择性地隐藏标签,将它们限定在图的某一区域中,或者调整它们以和边界对齐。愿(隔离的)力量与你同在。

创建者:Kamil Slowikowski

9. gganimate 


Motor Trend汽车数据集的圆形相关矩阵(Alboukadel Kassambara)

对于想要绘制相关矩阵的ggplot爱好者,ggcorrplot提供了一组优雅的选项。ggcorrplot的灵感来自corrplot包,但是被构建为需要和ggplot一起使用。这意味着,它有很多出色的功能让你控制矩阵的外观,从改变盒子的颜色、形状或大小(如上面的圆点矩阵)到添加系数标签,根据层次聚类重新排序矩阵等。

创建者:Alboukadel Kassambara,可以在Mode上找到。

10. gganimate 


Motor Trend汽车数据集的雷达图(Ricardo Bion)

雷达图提供了一种可视化多变量数据、发现模式的有用方法,以便于比较。ggradar旨在让你使用图形语法来创建这些图表,也被称作“蜘蛛网图”或“起始图”。

这个软件包基于Paul Williamson的代码,巧妙解决了这类图的特殊绘制问题:将环形网格线还有点、雷达坐标之间的直线结合起来。这应该是你雷达上的一个包。(抱歉,我不后悔。)

创建者:Ricardo Bion

11. gganimate 


美国航班模式,使用ggally将网络置于地图上(Amos Elberg)

ggally是ggplot的一个扩展程序,它汇集了一系列有用的额外的可视化功能。你可以使用ggally快速地在地图上画出模型的系数或者网络,如上面的可视化图所示。或许你需要重新排列你的数据来构建字形图?你也可以用它。

创建者:Barret Schloerke,可以在Mode上找到。

12. gganimate 


使用ggiraph和patchwork绘制Motor Trend汽车数据集具有悬停效果的交互图(David Gohel)

如果你想要为你的ggplot增加高级的交互或动画,ggiraph就是你的伙伴。使用这个html部件,你可以扩展现有的ggplot2 条形图,散点图,箱型图,地图等等,以及执行诸如在悬停时显示你选择的提示,例如数据值和标签,或者增加悬停动画,如上面的图表所示。

当用户点击你图表中的某一元素时,你也可以利用ggiraph来执行特定的操作,比如打开一个新页面。只需要为动作指定一个Java函数,ggiraph就可以完成其余的操作。

创建者:David Gohel

责任编辑:未丽燕 来源: 数据分析
相关推荐

2017-05-18 09:00:21

2024-01-03 18:45:35

Pandas绘图函数

2018-06-16 23:34:09

可视化地图R

2023-03-19 22:51:11

可视化项目可视化图表

2017-10-17 11:58:54

R语言UpSetR可视化

2020-03-11 14:39:26

数据可视化地图可视化地理信息

2020-12-20 17:40:04

机器学习可视化网站算法

2022-08-26 09:15:58

Python可视化plotly

2009-04-21 14:26:41

可视化监控IT管理摩卡

2023-10-12 08:02:36

2017-07-13 09:21:05

大数据数据可视化

2017-10-14 13:54:26

数据可视化数据信息可视化

2020-07-27 07:37:43

Python开发工具

2017-07-18 15:15:57

数据可视化细节层次分析

2017-06-19 08:30:35

大数据数据可视化报表

2022-06-28 09:34:24

可视化Python代码

2018-06-19 09:09:20

2017-07-25 14:50:50

Rshinydashbo可视化

2020-06-15 14:10:29

Web 开发可视化

2015-08-20 10:06:36

可视化
点赞
收藏

51CTO技术栈公众号