R语言数据可视化之美:专业图表绘制指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6 ggplot2图形语法

ggplot2是一个功能强大且灵活的R包,由Hadley Wickham编写,它可以生成优雅而实用的图形。ggplot2中的gg表示图形语法(grammar of graphic),这是一个通过使用“语法”来绘图的图形概念。ggplot2主张模块间的协调与分工,整个ggplot2的语法框架如图1-6-1所示,主要包括数据绘图部分与美化细节部分。R ggplot2图形语法的主要特点如下所示。

图1-6-1 ggplot2语法框架

(1)采用图层的设计方式,有利于结构化思维实现数据可视化。有明确的起始(ggplot()开始)与终止,图层之间的叠加是靠“+”实现的,越往后,其图层越在上方。通常一条geom_×××()函数或stat_×××()函数可以绘制一个图层。

(2)将表征数据和图形细节分开,能快速将图形表现出来,使创造性的绘图更加容易实现。而且通过stat_×××()函数将常见的统计变换融入绘图中。

(3)图形美观,扩展包(extension package)丰富,有专门调整颜色(color)、字体(font)和主题(theme)等辅助包。可以帮助用户快读定制个性化的图表。

ggplot2的绘图基本语法结构如图1-6-2所示。其中所需的图表输入信息如下所示。

图1-6-2 ggplot2绘图的基本语法结构

(1)ggplot():底层绘图函数。DATA为数据集,主要是数据框(data.frame)格式的数据集;MAPPINGS变量的视觉通道映射,用来表示变量xy,还可以用来控制颜色(color)、大小(size)或形状(shape)等视觉通道;STAT表示统计变换,与stat_×××()相对应,默认为"identity"(无数据变换);POSITION表示绘图数据系列的位置调整,默认为"identity"(无位置调整),关于POSITION的具体内容可见第3章3.1节。

(2)geom_×××() | stat_×××():几何图层或统计变换,比如常见的geom_point()(散点图)、geom_bar()(柱形图)、geom_histogram()(统计直方图)、geom_ boxplot()(箱形图)、geom_line()(折线图)等。我们通常使用geom_×××()函数就可以绘制大部分图表,有时候通过设定stat参数可以先实现统计变换。

可选的图表输入信息包括如下5个部分,主要是实现图表的美化与变换等。

(1)scale_×××():度量调整,调整具体的度量,包括颜色(color)、大小(size)或形状(shape)等,跟MAPPINGS的映射变量相对应;

(2)coord_×××():坐标变换,默认笛卡儿坐标系,还包括极坐标系、地理空间坐标系等;

(3)facet_×××():分面系统,将某个变量进行分面变换,包括按行、列和网格等形式分面绘图,这部分内容具体可见第9章9.4节。

(4)guides():图例调整,主要包括连续型和离散型两种类型的图例。

(5)theme():主题设定,主要用于调整图表的细节,包括图表背景颜色、网格线的间隔与颜色等。