
接上次的话题,我们继续去了解关于ggplot2可视化。经过上次文章的介绍,应该在使用ggplot2在绘制各类图形上,是没有太大问题了。现在问题就来到了——应该怎么样去提升可视化的效果。说到效果,我们一般会联想到颜色,形状,线条,大小等等一些的图形属性。所以,我们先来谈一下在ggplot2中各类常见图形属性。
一、图形属性
在ggplot2中,几何变换的类型不同,就决定了绘制图形的类型。而不同类型的图形,也由不一样的图形属性构造而成。比如说,散点图可由颜色各异,形状不同的点构成,直方图可由填充颜色不一样的条形组成等等。下面我们通过例子来说明一下,应该如何调整ggplot2中的图形属性。
# 绘制散点图,根据变量cyl不同类型的点,用不同的颜色标注
p <- ggplot(data=mpg,aes(x=displ,y=hwy,colour=factor(cyl)))
p + geom_point()

上面简单的代码中,首先我们看到了aes()这个重要的函数,它的作用就是映射变量到指定的属性。displ和hwy被映射到x和y上,而cyl这个变量则映射到colour(颜色)这个图形属性中。而factor()是把原本是数值向量的cyl转化成为因子,即让连续的变量转化为离散的变量。若直接使用的连续变量cyl映射在colour上,则会变成:

简单总结一下就是通过将数据集的变量映射到图形属性中,然后根据不同类型的变量,绘制出不同表达的图形属性。在绘制的过程中,我们首先就需要知道不同的几何变换中,有哪些对应的图形属性,其次是决定需要把那个变量映射到图形属性上。下面是一些常见的几何变换中包含的图形属性:


二、标度
标度在ggplot中就是控制数据到图形属性的映射。数据、图形属性和映射其实在之前和上一节的内容中或多或少也有提到,标度相当于一座桥梁,连接了变量和图形属性,并能根据输入的变量类型(标度的定义域)提供属性空间的某个区域(标度的值域)。在ggplot2中,每一种图形属性都拥有一个默认的标度,且标度会根据变量类型可分为连续型(变量为数值)或者离散型(因子,逻辑值,字符),到这里我们就更容易理解上一节中两幅图的差异之处。而根据不同图形属性可分为颜色标度、位置标度、形状标度、线条标度和大小标度。下面我们总结一下这些不同类型的标度及其对应的名称:

由于ggplot2每次使用标度都有默认好的样式,尽管比较方便,但时某些时候我们也有必要自定义标度的内容,也就是我们