# 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)
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”选项卡并扩大窗口查看:
请注意,如果您需要更多主题、比例尺和几何对象来丰富 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()也同样常用!4. 蜘蛛图
出人意料地,蜘蛛图或网状图分类在图库中非常受欢迎,在本文统计的 45% 流量中占到 6%。
雷达图是一种比较多个定量变量的方式。其中一个示例是使用
fmsb库构建这些图表,该库包含《Practices of Medical and Health Data Analysis using R》一书的实用函数。DataCamp Light 代码块中的代码将生成如下结果(或者在“Plots”选项卡中展开窗口查看,位于 DataCamp Light 代码块中 R Console 旁):
提示:如您所想,不要在同一张图中展示过多分组!很快就会难以辨认!
不过,
fmsb并非唯一选择:即便不在包内,您也可以用ggplot构建雷达图。您可以在这里找到教程,或查看ggplot2扩展ggradar。此外,
radarchart包也值得关注。如果您想创建交互式雷达图,它会是个不错的选择。5. 数据艺术
好奇?有趣?兴趣?惊喜?
我不确定是什么吸引了大家,但数据艺术板块是 R 图形图库用户访问量第五高的主题,约占本文统计流量的 5%。
这绝对不是您每天都会看到的内容!
该页面展示了来自世界各地 10 位数据艺术家的作品摘要。数据艺术是一种新趋势,顾名思义,您用数据来创作艺术。它可以采取多种形式,使用真实数据或非真实数据,既可以具象表达某种事物,也可以只是构建抽象形状。
您感兴趣并想了解更多吗?请查看此板块,当然也欢迎您提交自己的作品!
您想为 R 图形图库做出贡献、提交图表或请求补充缺失的图表吗?请前往这里。