10.1.1 ggplot2包简介

10.1.1 ggplot2包简介

ggplot2包的核心理念是将绘图与数据分离,通过将数据加载、美学映射、图元修饰等若干相互独立又有一定联系的绘图步骤转换为函数组合,实现分图层灵活绘图。这样不仅能绘制美观的图表,还能避免烦琐的细节。

R语言的图层大致可以分为3个部分:数据层、几何图形层和美学层。如果读者使用过photoshop,那么对于图层一定不会陌生。图层包含各种图形元素,不同的图形元素可以按照设计者的想法自由组合,将组合的结果按照一定顺序叠放,可以生成形态各异的图表。如下代码表示借助于ggplot2包绘制图形,代码运行结果如图10-1所示。

在上述代码中,“ggplot(mtcars,aes(x=wt,y=mpg))”表示数据层;“geom_point()”表示几何图形层。若单纯使用“ggplot(mtcars,aes(x=wt,y=mpg))”,则无法绘制图形,这是因为只有数据层,没有数据的图形映射。我们可以在数据层基础上增加图形美学层,代码如下所示:

图10-1 ggplot包绘制图形示例

增加美学层后的图形示例如图10-2所示。

图10-2 增加美学层后的图形示例

图层允许用户一步步构建图形,这样便于用户单独对图层要素进行修改,如增加统计量、修改数据等。因此,ggplot2包可以通过控制图层的底层组件来构造任意的图形。代码中用到的mtcars是R语言自带的数据集,读者可以使用“?mtcars”查询其详细信息。下文还会用到类似的其他数据集。

ggplot2包的以下7大构件可对图层进行控制。

·数据映射(Data Mapping):将数据中的变量映射到图形属性。

·标度(Scale):控制映射后图例和坐标刻度的显示方式。

·几何对象(Geometric):选择图形中的点、线、方块等图形元素。

·统计变换(Statistics):对原始数据进行某种统计计算,不建议使用复杂的统计运算,可以使用reorder()等控制图形规律呈现的函数。

·坐标(Coordinate):有直角坐标和极坐标之分。

·图层(Layer):不同图形元素可以叠加。

·分面(Facet):将数据分组,控制分组绘图的方法和排列形式。