我一直在阅读这两个功能的ggplot2
文档。我想知道使用每个函数(facet_wrap()
和facet_grid()
)有什么区别和正确的情况。
library(ggplot2)
p <- qplot(displ, hwy, data = mpg)
p + facet_wrap(~ cyl)
p + facet_grid(~ cyl)
我提供这个小例子作为起点。差异似乎是包裹使得情节更加自主,网格使得一个情节全部在一起。
答案 0 :(得分:38)
下面的答案是指facet_grid()
或facet_wrap()
中有2个参数的情况。
facet_grid(x ~ y)
也会显示x*y
个图。
例如:
library(ggplot2)
g <- ggplot(mpg, aes(displ, hwy))
有4个不同的圆柱和7个不同的类值。
g + geom_point(alpha=1/3) + facet_grid(cyl~class)
上面显示4 * 7 = 28个图,即使有些是空的(因为有些类没有相应的柱面值,例如类=&#34的行;中等尺寸&#34;没有任何相应的cyl =&#34; 5&#34;值)
另一方面,facet_wrap(x ~ y)
仅显示具有实际值的图。
g + geom_point(alpha=1/3) + facet_wrap(cyl~class)
现在显示了19个图表,每个图表用于cyl和class的每个组合。
答案 1 :(得分:21)
facet_wrap(...)
在基于单个变量的不同框架(构面)中将ggplots
字符串组合在一起。 facet_grid(...)
可以带两个变量:
p + facet_grid(cyl~class)
您还可以使用第三个变量在每个方面进行分组:
qplot(displ, hwy, data=mpg,color=factor(year)) + facet_grid(cyl~class)
显示了#cylinders和class的hwy里程与排量的改善(或缺乏)。
答案 2 :(得分:5)
对于单变量图,您可以使用facet_grid()
或facet_wrap()
。
facet_wrap(~variable)
将返回variable
级别的对称矩阵图。
facet_grid(.~variable)
将返回等于水平分布的variable
级别的构面。
facet_grid(variable~.)
将返回等于垂直分布的variable
级别的构面。
答案 3 :(得分:0)
主要引自ggplot2书,p。 148f。
共有三种类型的构面:
facet_null()
:默认为单个图。facet_wrap()
:将一维面板的条带“包裹”为二维。facet_grid()
:生成由变量定义的二维面板网格,这些变量形成
行和列。Facet包裹
facet_wrap()
制作了很长的面板功能区(由任意数量的
变量)并将其包装为2d。如果您有一个变量,这很有用
具有多个级别,并希望以更节省空间的方式布置地块
方式。
您可以使用ncol
,nrow
,
as.table
和dir
。 ncol
和nrow
控制多少列和行(您只需要设置一个)。 as.table
控制构面的布局是否像
表格(TRUE
)的右上角是最大值,或者是图表(FALSE
),
最高值位于右上角。 dir
控制换行的方向:
h 原始或 v 垂直
Facet网格
从?facet_grid
开始:facet_grid()
形成由行和列构面变量定义的面板矩阵。当您有两个离散变量,并且变量的所有组合都存在于数据中时,此功能最为有用。
您可以在行或列中使用多个变量,只需将它们“添加”即可
在一起,例如a + b ~ c + d
。
facet grid()
还有一个名为space
的附加参数,它使用
与scales
具有相同的值。
# If scales and space are free, then the mapping between position
# and values in the data will be the same across all panels. This
# is particularly useful for categorical axes
ggplot(subset(mpg, manufacturer %in% c("audi", "honda", "toyota")) , aes(drv, model)) +
geom_point() +
facet_grid(manufacturer ~ ., scales = "free", space = "free") +
theme(strip.text.y = element_text(angle = 0))
(简化的)示例取自?facet_grid