【问题标题】:Scales = "free" works for facet_wrap but doesn't for facet_gridScales = "free" 适用于 facet_wrap 但不适用于 facet_grid
【发布时间】:2016-10-06 18:02:36
【问题描述】:

我试图理解为什么 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()

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()

请看,scales = "free" 参数对于 facet_grid()facet_wrap() 的行为不同。有什么可以解释的?

【问题讨论】:

标签: r ggplot2 facet-wrap


【解决方案1】:

参考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 对于更独立的情节更有用。

【讨论】:

  • 我总是喜欢学习我使用的工具的理论基础。肯定对我有帮助。
猜你喜欢
  • 2021-11-23
  • 1970-01-01
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多