R语言 | 图形分面+几何对象

125 阅读2分钟

引言

延续上一篇笔记的内容,这一篇将会写到图形的分面。

分面

添加额外的变量的一种方法是将图分成多个分面,即显示数据子集的子图。另一种方法是上一篇笔记提到的利用图形的属性。

通过单个变量对图进行分面

使用函数facet_wrap(),传递给这个函数的变量应该是离散型的。 代码如下:

ggplot(data=mpg)+ geom_point(mapping = aes (x=displ,y=hwy))+facet_wrap(~class,nrow=2)

结果如图:

R10.png

通过两个变量对图进行分面

需要在绘图命令中加入函数facet_grid()。这个函数的第一个参数也是一个公式,但是这个公式包含了由~分割开的变量名。

代码如下:

ggplot(data=mpg)+geom_point(mapping =aes(x=displ,y=hwy))+facet_grid(drv ~ cyl)

结果如图:

R11.png

可以思考的问题

如果使用连续变量进行分面,会出现什么呢?

将会出现散落的点,且不显示出任何的趋势。所以我们需要先将连续变量离散化,再进行分面。

几何对象

几何对象是用来表示数据的几何图形对象,我们会用不同的几何对象来描述对应的图。例如,条形图使用了条形几何对象,折线图会使用直线几何对象。

例子:点几何对象

R12.png

例子:平滑曲线几何对象

R13.png

只要将一个图形的属性映射为一个离散变量,ggplot2就会自动对数据进行分组来绘制多个几何对象。 这项功能是按照图形属性进行的分组,不用添加图例,也不用为几何对象添加区分特征。

R14.png

如果想在同一张图中显示多个几何对象,可以向ggplot()函数中添加多个几何对象。

R15.png

如果将映射放在几何对象函数中,那么ggplot2会将其看作这个图层的局部映射,它会使用这些映射扩展或者全局映射,但只对这一个图层有效。