引言
延续上一篇笔记的内容,这一篇将会写到图形的分面。
分面
添加额外的变量的一种方法是将图分成多个分面,即显示数据子集的子图。另一种方法是上一篇笔记提到的利用图形的属性。
通过单个变量对图进行分面
使用函数facet_wrap(),传递给这个函数的变量应该是离散型的。 代码如下:
ggplot(data=mpg)+ geom_point(mapping = aes (x=displ,y=hwy))+facet_wrap(~class,nrow=2)
结果如图:
通过两个变量对图进行分面
需要在绘图命令中加入函数facet_grid()。这个函数的第一个参数也是一个公式,但是这个公式包含了由~分割开的变量名。
代码如下:
ggplot(data=mpg)+geom_point(mapping =aes(x=displ,y=hwy))+facet_grid(drv ~ cyl)
结果如图:
可以思考的问题
如果使用连续变量进行分面,会出现什么呢?
将会出现散落的点,且不显示出任何的趋势。所以我们需要先将连续变量离散化,再进行分面。
几何对象
几何对象是用来表示数据的几何图形对象,我们会用不同的几何对象来描述对应的图。例如,条形图使用了条形几何对象,折线图会使用直线几何对象。
例子:点几何对象
例子:平滑曲线几何对象
只要将一个图形的属性映射为一个离散变量,ggplot2就会自动对数据进行分组来绘制多个几何对象。 这项功能是按照图形属性进行的分组,不用添加图例,也不用为几何对象添加区分特征。
如果想在同一张图中显示多个几何对象,可以向ggplot()函数中添加多个几何对象。
如果将映射放在几何对象函数中,那么ggplot2会将其看作这个图层的局部映射,它会使用这些映射扩展或者全局映射,但只对这一个图层有效。