从零开始学R(六)——使用ggplot2的可视化简介

R的可视化——ggplot2

数据分析师或数据科学家花费大量精力去琢磨各种模型,对模型数据进行解读,但是在普通人眼里,这些数字是如此的繁杂,甚至有一些数据分析并不在意统计数字本身,而是在意它的显著性(Significance)。相比于文字来说,图片会给人的视觉带来更大的冲击力,因此,掌握R的可视化技巧,会让我们成为更加优秀的数据从业者。

这一节重点介绍R的ggplot2 package。R有基础的graphics绘图package,也有后来发展起来的lattice package。基础绘图包具有极高的自由度,像一张画布,可以任意绘制,lattice绘图包是基于基础绘图包的扩展,但是这二者相对来说需要大量的函数与参数记忆,对于初学者,或者是想轻易得到较为美观图片的小伙伴来说,这部分的操作有些烦琐。而ggplot2包设定好了非常多的参数,极大地简化了绘图进程,生成的图片也非常漂亮,因此,我们这一节重点介绍R的ggplot2 package。

ggplot2简介

ggplot2需要单独下载,由Hadley Wickham编写,他将这个包和其他的例如readrdplyrtibble等pacakge打包整合到一个综合的package中,即tidyverse,所以可以直接下载tidyverse,避免再分别运行所有的package。

ggplot2的绘图类似于Photoshop,采用图层的形式一层一层叠加,不同的图层之间用+相连,后面的图层在前一图层上方。

基本的语法结构

(1)ggplot(data, mapping)

这是底层绘图函数,data表示绘图用到的数据集,mapping表示映射,包括变量x和y,还有全局的颜色(color),大小(size)等。

(2)geom_XX()

这是基本的几何图层,不同的后缀可以绘制不同的图,比如geom_point()(散点图)、geom_bar()(柱状图)

(3)stat_XX()

这是统计变换,包括计数,百分比等

(4)图表美化部分
scale_XXX()是调整坐标轴和图标元素的度量,包括颜色、大小等
coord_XXX()是进行坐标变换,默认为笛卡尔坐标系(正交坐标系),还有极坐标系和地理空间坐标系等
facet_XXX()是分面系统,将某个变量进行分面变换,用分行、分列和网格的形式分类画图
guides()是图例调整
theme_XXX()是调整表格的主题样式,包括表格的背景、网格线等等。

图表类型

类型 函数
连续型单变量 geom_histogram()、geom_density()、 geom_dotplot()、geom_freqpoly()、geom_qq()、geom_area()
离散型单变量 geom_bar()
连续型双变量 geom_point()、geom_area()、geom_line()、geom_jitter()、geom_smooth()、geom_label()、geom_text()、geom_bin2d()、geom_hex()、geom_density2d()、geom_map()、geom_step()、geom_quantile()、geom_rug()
离散型双变量 geom_count()
连续型/离散型 geom_boxplot()、geom_violin()、geom_dotplot()、geom_col()
连续型三变量 geom_contour()、geom_raster()、geom_tile()

视觉参数介绍

颜色

使用color(点),col(线)、colour(填充区)和fill(指定填充区)来调整图像的点、线、区域边框、区域内部以及其他图像的颜色。alpha参数可以调整颜色的透明度,从0(完全不透明)到1(完全透明)

大小

size参数可以调整点的大小和线的粗细,默认单位为pt

角度

angle参数可以调整部分几何对象的角度,例如坐标轴标度的摆放角度等。

位置

vjust参数可以调整垂直位置,0代表底部,0.5代表中部,1代表顶部;
hjust可以调整水平位置,0代表左侧,0.5代表中间,1代表右侧。

线条类型

linetype参数可以指定线条类型,包括0-白线、1-实线、2-短虚线、3-点线、4-点横线、5-长虚线、6-短长虚线

点的形状

shape参数可以调整点的形状,取值范围为[0,25]的整数,分别代表不同的形状。

结语

图像是为了让读者清晰地明白绘图者想要表达的意思,而不同的图像类型所能传递的信息精度是不同的。既有研究得出如下的信息精度传递顺序:

位置 > 长度 > 角度 > 方向 > 面积 > 体积 > 饱和度 > 色相 > 纹理 > 形状

不同的视觉组合对数据区分程度也不同

组合 区分程度
位置+方向 无法
位置+方向+饱和度 较易
位置+方向+形状 容易
位置+方向+色相 容易
位置+方向+饱和度+形状 很容易
位置+方向+色相+形状 很容易

从零开始学R(六)——使用ggplot2的可视化简介_第1张图片
此外,其一是这一系列的分享仅仅是一个基础,这一节的参考书一整本都在讨论这个问题,我也不可能以这样的篇幅来完整的覆盖。当然如果有兴趣的朋友可以私下评论或者提问,我再做专门回答。其二,每个人的审美不同,我只能和大家分享如何去调整相应的参数,至于该选择什么,只能见仁见智。其三,我将在接下来对一些基本的绘图进行介绍,因此不在这里展示相关的绘图代码。

关于ggplot2,推荐Hadley Wickham的R for Data Science从零开始学R(六)——使用ggplot2的可视化简介_第2张图片

*以上内容参考张杰:《R语言数据可视化之美:专业图表绘制指南(增强版)》,电子工业出版社2019年版,第33页。

你可能感兴趣的:(数据可视化,数据分析)