跳至主要内容

R 图形图库中访问量最高的 5 大图表主题

R 用户与爱好者最青睐的 5 种图表列表。
· 8分钟 阅读

使用 AI 探索

R 图形图库 是一个展示数百个 R 图表的网站,始终附带相应代码。该网站已上线一年半,每天都有数千人访问,寻找 R 作图的灵感或帮助。R 图形图库让您可以找到大量图表及其生成代码!

本文介绍图库中访问量最高的 5 个页面,它们合计占全站总流量的 45%。它展示了当下激发 R 爱好者兴趣的数据可视化主要趋势。

对使用 R 进行数据可视化感兴趣吗?不妨看看 DataCamp 的 R 数据可视化学习路径。

1. 图形语法:ggplot2

毫不意外,ggplot2 分类是访问量最高的主题:约占本文统计流量的 15%(如上所述,这一统计覆盖了全站 45% 的总流量)。

这一流量不仅源于该包在 R 社区中的广泛流行,也因为该分类汇集了使用该包可以制作的各种图表,如箱线图、散点图、面积图等,同时还包含一些子部分,展示如何添加注释、管理配色以及制作数据艺术。简而言之,该分类包含了与这个R 包相关的海量信息。

这个库是“基于图形语法的 R 作图系统”,是 R 绘图的参考实现,有大量资源可用于学习其语法,例如 DataCamp 的 Data Visualization with ggplot2 课程,以及 ggplot2 作者 Hadley Wickham 的 ggplot2 图书。

ggplot2 是图形语法的实现,这意味着生成图形有一套基础语法:您需要数据和图形元素来制作图表,就像造句需要人称代词和变位动词一样。

对于图表而言,这意味着您将数据以 x 和 y 元素传入图表,并需要操控一些细节,如颜色、标记等作为图形元素。您会看到 ggplot2 也做了这种区分,而且在 ggplot2 图表中经常能辨识出一些基础要素,如数据、几何对象、映射和比例尺。

当然,ggplot2 语法中也有更高级的部分,如统计变换和分面,但这些不在本文讨论范围内。请查看上文提到的资源,获取更深入的 ggplot2 知识与用法。

回到图库,您会看到目前使用该包的图形约有 40 幅,涵盖主要图表类型,例如您将在下方看到的条形图:

您会看到,下图使用了前文提到的四个要素中的三个:数据、映射和几何对象。现在,让我们更仔细地看看结果,或者在上方 DataCamp Light 代码块中,切换到 R 控制台旁出现的“Plots”选项卡并扩大窗口查看:

R 图表

请注意,如果您需要更多主题、比例尺和几何对象来丰富 ggplot2 图表,随时可以从其他扩展包获取,例如 ggthemes 或 ggthemr 包。

2. 交互式图表

其次,交互式图表分类约占本文统计流量的 11%。与 ggplot2 类似,您可以认为这一分类的大量流量也来自其更为广泛,涵盖了许多不同交互式图表的信息。

但什么是交互式图表?

当然它们也是图表,但其特别之处在于,您可以对图表进行放大或缩小、调整坐标轴、悬停元素以查看更多信息、导出为 png 格式、筛选特定数据等……它们让用户能够与数据互动,发现所需信息。

在分析阶段使用时,交互式图表将帮助您更高效地探索数据;在向客户、同事或读者汇报时,它们有助于吸引受众并帮助其理解数据。交互式图表在用户与图形之间建立了双向沟通,因此是双赢选择。

如今《纽约时报》等报纸和 Science 等学术期刊使用交互式图形并非偶然!

在 R 中,使用 htmlwidgets 制作交互图形非常容易。

除了展示该包的示例外,图库还展示了使用 Plotly 的多个示例。Plotly 是通过开源 JavaScript 图形库 plotly.js 创建基于 Web 的图形的 R 包。其代码语法与 ggplot2 非常接近,因此您很可能在几分钟内就能绘制出第一张交互式图表!如果您想开始使用该包,请参考这个 Plotly 教程。

当然,您也可以使用 Shiny 制作交互式图表。Shiny 是一个 R 库,可将分析转换为交互式 Web 应用。除了本节看到的库之外,还有许多库可以将静态可视化转换为交互式作品!

3. 箱线图

箱线图分类约占本文统计流量的 8%。它是站内第三受欢迎的分类,可能因为它比前两个分类更具体:仅涉及一种特定图表类型。

箱线图无需多做介绍。它是用于可视化数值变量与离散变量之间关系的常用工具。但请注意,不要漏掉箱线图背后可能隐藏的信息(例如双峰分布)!

R 图形图库将为您提供箱线图的一些有趣替代方案,如小提琴图或带抖动的箱线图。您会发现,尽管 ggplot2 有自己的专栏,该包仍非常受欢迎,同时基础 R 函数如 jitter() 也同样常用!

# Library `ggplot2`
library(.......)

# First type of color
ggplot(mtcars, aes(factor(cyl), mpg)) + geom_violin(aes(fill = cyl))

R 图形

4. 蜘蛛图

出人意料地,蜘蛛图或网状图分类在图库中非常受欢迎,在本文统计的 45% 流量中占到 6%。

雷达图是一种比较多个定量变量的方式。其中一个示例是使用 fmsb 库构建这些图表,该库包含《Practices of Medical and Health Data Analysis using R》一书的实用函数。

# Library
library(fmsb)

# Create data: note in High school for several students
set.seed(99)
data <- as.data.frame(matrix( sample( 0:20 , 15 , replace=F) , ncol=5))

# Set the row and column names 
colnames(data) <- c("math" , "english" , "biology" , "music" , "R-coding" )
rownames(data) <- paste("mister" , letters[1:3] , sep="-")

# To use the fmsb package, add 2 lines to the dataframe: the max and min of each topic to show on the plot!
data <- rbind(rep(20,5) , rep(0,5) , data)

# Radar chart
colors_border <- c( rgb(0.2,0.5,0.5,0.9), rgb(0.8,0.2,0.5,0.9), rgb(0.7,0.5,0.1,0.9))
colors_in <- c( rgb(0.2,0.5,0.5,0.4), rgb(0.8,0.2,0.5,0.4), rgb(0.7,0.5,0.1,0.4))

radarchart(data, 
           axistype=1 , 
          #customize the polygons
          pcol=colors_border, 
          pfcol=colors_in, 
           plwd=4, 
           plty=1,
           #customize the grid
           cglcol="grey", 
           cglty=1, 
           axislabcol="grey", 
           caxislabels=seq(0,20,5), 
           cglwd=0.8,
           #custom labels
           vlcex=0.8)

# Add a legend
legend(x=0.7, y=1, legend=rownames(data[-c(1,2),]), bty="n", pch=20 , col=colors_in , text.col="grey", cex=1.2, pt.cex=3)

DataCamp Light 代码块中的代码将生成如下结果(或者在“Plots”选项卡中展开窗口查看,位于 DataCamp Light 代码块中 R Console 旁):


R 中的图形

提示:如您所想,不要在同一张图中展示过多分组!很快就会难以辨认!

不过,fmsb 并非唯一选择:即便不在包内,您也可以用 ggplot 构建雷达图。您可以在这里找到教程,或查看 ggplot2 扩展 ggradar。

此外,radarchart 包也值得关注。如果您想创建交互式雷达图,它会是个不错的选择。

5. 数据艺术

好奇?有趣?兴趣?惊喜?

我不确定是什么吸引了大家,但数据艺术板块是 R 图形图库用户访问量第五高的主题,约占本文统计流量的 5%。

这绝对不是您每天都会看到的内容!

该页面展示了来自世界各地 10 位数据艺术家的作品摘要。数据艺术是一种新趋势,顾名思义,您用数据来创作艺术。它可以采取多种形式,使用真实数据或非真实数据,既可以具象表达某种事物,也可以只是构建抽象形状。

您感兴趣并想了解更多吗?请查看此板块,当然也欢迎您提交自己的作品!

数据艺术

您想为 R 图形图库做出贡献、提交图表或请求补充缺失的图表吗?请前往这里。

主题