ggplot2中的facet_wrap()和facet_grid()有什么区别?
我一直在阅读两个函数的ggplot2
文档。 我想知道有什么区别,什么是正确的情况下使用每个函数( facet_wrap()
和facet_grid()
)。
library(ggplot2) p <- qplot(displ, hwy, data = mpg) p + facet_wrap(~ cyl) p + facet_grid(~ cyl)
我提供这个小例子作为起点。 差别似乎是包装使得情节更加自主和网格使一个情节一起。
下面的答案是指在facet_grid()
或facet_wrap()
有两个参数的情况。
即使某些图是空的, facet_grid(x ~ y)
也会显示x*y
图。 例如:
library(ggplot2) g <- ggplot(mpg, aes(displ, hwy))
有4个不同的cyl和7个不同的类别值。
g + geom_point(alpha=1/3) + facet_grid(cyl~class)
有4个不同的cyl和7个不同的类别值。 上面显示了4 * 7 = 28的图,即使有些图是空的(因为有些类没有相应的柱面值,就像class =“midsize”的行没有任何对应的cyl =“5”值) facet_wrap(x ~ y)
另一方面,只显示具有实际值的图。
g + geom_point(alpha=1/3) + facet_wrap(cyl~class)
现在有19个地块显示,每一个组合cyl和class。
facet_wrap(...)
将基于单个variables的不同框架(构面)中的ggplots
串在一起。 facet_grid(...)
可以带两个variables:
p + facet_grid(cyl~class)
您也可以使用第三个variables在每个方面进行分组:
qplot(displ, hwy, data=mpg,color=factor(year)) + facet_grid(cyl~class)
显示了hwy里程的改进(或缺乏)与#cylinders和class的排位。
对于单variables图,您可以使用facet_grid()
或facet_wrap()
。
facet_wrap(~variable)
将返回facet_wrap(~variable)
的对称matrix图。
facet_grid(.~variable)
将返回等于水平分布的variable
级别的构面。
facet_grid(variable.~)
将返回等于垂直分布variable
级别的构面。