![1bacced8b19d649f219df49fe676c663.png](https://img-blog.csdnimg.cn/img_convert/1bacced8b19d649f219df49fe676c663.png)
接上次的话题,我们继续去了解关于ggplot2可视化。经过上次文章的介绍,应该在使用ggplot2在绘制各类图形上,是没有太大问题了。现在问题就来到了——应该怎么样去提升可视化的效果。说到效果,我们一般会联想到颜色,形状,线条,大小等等一些的图形属性。所以,我们先来谈一下在ggplot2中各类常见图形属性。
一、图形属性
在ggplot2中,几何变换的类型不同,就决定了绘制图形的类型。而不同类型的图形,也由不一样的图形属性构造而成。比如说,散点图可由颜色各异,形状不同的点构成,直方图可由填充颜色不一样的条形组成等等。下面我们通过例子来说明一下,应该如何调整ggplot2中的图形属性。
# 绘制散点图,根据变量cyl不同类型的点,用不同的颜色标注
p <- ggplot(data=mpg,aes(x=displ,y=hwy,colour=factor(cyl)))
p + geom_point()
![37fc9bd6f71819f71af9533398c9ea19.png](https://img-blog.csdnimg.cn/img_convert/37fc9bd6f71819f71af9533398c9ea19.png)
上面简单的代码中,首先我们看到了aes()这个重要的函数,它的作用就是映射变量到指定的属性。displ和hwy被映射到x和y上,而cyl这个变量则映射到colour(颜色)这个图形属性中。而factor()是把原本是数值向量的cyl转化成为因子,即让连续的变量转化为离散的变量。若直接使用的连续变量cyl映射在colour上,则会变成:
![c79ded425a1f30e57999c7b96e84ca35.png](https://img-blog.csdnimg.cn/img_convert/c79ded425a1f30e57999c7b96e84ca35.png)
简单总结一下就是通过将数据集的变量映射到图形属性中,然后根据不同类型的变量,绘制出不同表达的图形属性。在绘制的过程中,我们首先就需要知道不同的几何变换中,有哪些对应的图形属性,其次是决定需要把那个变量映射到图形属性上。下面是一些常见的几何变换中包含的图形属性:
![8dfeddd639809e37ad28d63986184eb6.png](https://img-blog.csdnimg.cn/img_convert/8dfeddd639809e37ad28d63986184eb6.png)
![ec1ee460e2110ca20735e543323be109.png](https://img-blog.csdnimg.cn/img_convert/ec1ee460e2110ca20735e543323be109.png)
二、标度
标度在ggplot中就是控制数据到图形属性的映射。数据、图形属性和映射其实在之前和上一节的内容中或多或少也有提到,标度相当于一座桥梁,连接了变量和图形属性,并能根据输入的变量类型(标度的定义域)提供属性空间的某个区域(标度的值域)。在ggplot2中,每一种图形属性都拥有一个默认的标度,且标度会根据变量类型可分为连续型(变量为数值)或者离散型(因子,逻辑值,字符),到这里我们就更容易理解上一节中两幅图的差异之处。而根据不同图形属性可分为颜色标度、位置标度、形状标度、线条标度和大小标度。下面我们总结一下这些不同类型的标度及其对应的名称:
![1693a6396e874e137b5d13b9880b0c08.png](https://img-blog.csdnimg.cn/img_convert/1693a6396e874e137b5d13b9880b0c08.png)
由于ggplot2每次使用标度都有默认好的样式,尽管比较方便,但时某些时候我们也有必要自定义标度的内