添加额外变量的方法一种是使用图形属性。另一种方法是将图分割成多个分面,即可以显示数据子集的子图。这种方法特别适合添加分类变量。
通过单个变量对图形进行分面,facet_wrap()
ggplot(mpg)+geom_point(aes(displ,hwy))+facet_wrap(~ class,nrow= 2)

~符号后添加变量名,
nrow=2
代表分为2行
通过两个变量对图形进行分面,facet_grid()
ggplot(mpg)+geom_point(aes(displ,hwy))+facet_grid(drv~cyl)

变量1 ~ 变量2,~放置在两变量中间
练习:
(1)如果使用连续变量进行分面,会发生什么情况?
图形数量多且小。
ggplot(mpg)+geom_point(aes(displ,hwy))+facet_wrap(~ cty)

(2)在使用
facet_grid(drv~cyl)
生成的图中,空白单元格的意义是什么?他们和以下代码生成的图有什么关系?
ggplot(data=mpg)+geom_point(mapping=aes(x=drv,y=cyl))

空白单元格代表无此点集,代码生成图的点可以用来判断
facet_grid(drv~cyl)
生成的图是否为空白单元格,或者说查看drv与cyl的交集情况。(3)以下代码会绘制成什么图?
.
的作用是什么?点在后表示按行分面
ggplot(data = mpg)+geom_point(mapping = aes(x=displ,y=hwy))+facet_grid(drv~.)

点在前表示按列分面
ggplot(data = mpg)+geom_point(mapping = aes(x=displ,y=hwy))+facet_grid(.~cyl)

(4)查看本节的第一个分面图:
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))+facet_wrap(~class,nrow=2)
与使用图形属性相比,使用分面的优势和劣势是什么?如果有一个更大的数据集,你将如何权衡这两种方法的优劣。
分面是对整体点集的拆分,利于观察单个变量的趋势,但不能观测到整体的变化。
(5)阅读?facet_wrap
的帮助页面。nrow和ncol的功能分别是什么?还有哪些选项可以控制分面布局?为什么函数facet_grid()没有变量nrow和ncol?
nrow:行数,ncol:列数,facet_grid()是双变量行列固定。
(6)在使用函数facet_grid()
时,一般应该将具有更多唯一值的变量放在列上。为什么这么做呢?
图形可视化强,有效缩小图形。
网友评论