对于分类变量比较有用的一个方法是将图拆分成多个facets,每个子图都展示数据的一个子集。
要通过单个变量对绘图进行分面,请使用 facet_wrap()。 facet_wrap()的第一个参数应该是一个公式。
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2)

如果要对两个变量的组合对绘图进行分面,那么需要facet_grid()。facet_grid()的第一个参数也是一个公式,
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ cyl)

如果把上面代码变成这样会怎样?
ggplot(data = mpg) +
geom_point(mapping = aes(x = drv, y = cyl))
没有了facet_grid(drv ~ cyl),图变成这样:

显然我们不能对离散型变量作散点图。
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ .)

按照displ这个定性变量对图片分层。其中displ放在y轴位置。
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(. ~ cyl)
按照cyl这个离散变量对图片分层。其中cyl放在x轴位置

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

本文介绍了如何利用ggplot2包中的facet_wrap()和facet_grid()函数,对R语言中的数据进行分面分析,以实现分类变量的可视化对比。通过公式参数设置,可以按单个或两个变量对图表进行拆分,方便观察不同子集的分布情况。
264

被折叠的 条评论
为什么被折叠?



