r - Scales = "free"适用于 facet_wrap 但不适用于 facet_grid

标签 r ggplot2 facet-wrap

我试图理解为什么 facet_grid() 的输出和 facet_wrap()不同,即使输入相同:

facet_grid

ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_grid(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()

enter image description here

facet_wrap
ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_wrap(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()

enter image description here

看,论点 scales = "free" facet_grid() 没有相同的行为和 facet_wrap() .有什么可以解释的?

最佳答案

引用this link :
facet_grid通过一个或两个在水平和/或垂直方向上变化的变量将数据拆分为多个方面,而 facet_wrap将刻面彼此相邻放置,用一定数量的列或行包裹。换句话说,facet_wrap只有水平尺寸。

因此,使用该链接中的示例,sp + facet_grid(. ~ sex)行为与 sp + facet_grid( ~ sex) 相同.在您的情况下,facet_grid(. ~ referencia)facet_wrap( ~ referencia)应该产生相同的情节。

对于二维或更多维面,facet_grid根据参数 (vertical ~ horizontal) 生成图网格. facet_wrap ,另一方面,只会水平堆叠图。然后用户可以通过指定列数或行数来设置布局。

现在,当 scales = "free"添加了参数,facet_grid 中的方面仍然会受到网格的限制,因此同一行上的图不能有不同的 y 轴。同样,每列只能有一个 x 轴。使用 facet_wrap但是,每个图都是独立显示的,因此它可以“释放”其 x 轴和 y 轴。

在我看来,facet_grid当您想要相对比较类别内的图时很有用,这可以通过设置相同的轴比例来实现。同时,facet_wrap对于彼此之间更独立的图更有用。

关于r - Scales = "free"适用于 facet_wrap 但不适用于 facet_grid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669127/

相关文章:

r - 导入和解析 .eml 文件

r - 从R中的混淆矩阵中获取 "Accuracy (average)"

当所有数据均为 NA 时删除图例条目和构面

r - ggplot facet_wrap 仅在顶部和左侧带有标签

r - 在 facet_wrap 条文本中只显示一个变量标签?

r - 如何将参数传递给引用嵌套数据帧的列名的 purrr:::map ?

R,bit64,计算 data.table 中的行均值和标准差的问题

r - 在 R 2.15.2 上安装 Ime4 和 ggplot2 时出现问题

r - 如何制作具有多个几何图形的自定义 ggplot2 geom

R 通过使用facet_wrap和数据子集的函数调用传递ggplot参数