在ggplot2中,facet(分面)即在同一个页面上自动摆放多个图形,先将数据分成几个组,然后把每个组分别画图再拼到一起。分成两种类型:
- facet_grid()
- facet_wrap()
网格型(facet_grid)和封面型(facet_wrap)。网格分面生成的是一个2维的面板网格, 面板的行与列通过变量来定义, 本质是2维的; 封装分面则先生成一个1维的面板条块, 然后再分装到2维中, 本质是1维的。
facet主要用于多y轴的情况。对于只有一个变量进行分面的情况,wrap()和grid() 并没有什么区别,只是横向或纵向排列。
1 | p <- ggplot(mtcars, aes(mpg, wt)) + geom_point() |
对于对两个变量分面的情况,则有明显的区别:
1 | p + facet_grid(vs ~ am) #以vs和am为分类变量 |