ggplot2,facet_grid,自由秤?

hat*_*rix 48 r ggplot2

在以下示例中,如何根据每个面板中的数据获取y轴限制?

mt <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) + geom_point() 
Run Code Online (Sandbox Code Playgroud)

这些都不会这样做:

mt + facet_grid(. ~ cyl, scales="free")
mt + facet_grid(. ~ cyl, scales="free_y")
Run Code Online (Sandbox Code Playgroud)

teu*_*and 51

我很抱歉突然提出这个 12 年前的问题并给出了新答案,但我认为它可能有用。如果您想保留网格布局,但想要类似环绕的自由刻度,您可能会对ggh4x::facet_grid2()其中的一个independent参数感兴趣,该参数允许轴在网格布局中的行或列内变化。

library(ggplot2)

ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) + 
  geom_point() +
  ggh4x::facet_grid2(. ~ cyl, scales = "free_y", independent = "y")
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v2.0.1)于 2022-06-09 创建

(免责声明:我是 ggh4x 的作者)

  • 非常简洁的解决方案,写得很好的包!谢谢!! (5认同)
  • 这应该是这个问题的公认答案。ggh4x 太棒了,谢谢! (4认同)
  • 非常感谢你做的这些。如果我可以两次赞成你的答案(和你的包裹),我会的! (2认同)
  • 优秀的扩展,喜欢“独立”参数! (2认同)
  • 我刚刚从这个答案中发现了“ggh4x”,我想我是糖果店里的一个孩子......“scale_colour_multi”! (2认同)

Geo*_*tas 48

也许是因为你只有一个y轴,用你的方式.你尝试过这样的事吗?

mt + facet_grid(cyl ~ ., scales="free")
Run Code Online (Sandbox Code Playgroud)

  • 我觉得这不能解决问题.我有同样的问题,所有"cyl~".那是翻转轴.现在,x轴是我想要的自由,但它不是免费的.我使用R版本3.2.3与ggplot2版本2.1.0. (10认同)
  • 我明白了 - 因此它不会按行或列缩放每个面板...在这种情况下,facet_wrap()也可以正常工作. (2认同)

jf3*_*328 15

你不能.看到这里

您可以使用facet_wrap它来"释放"两个轴


小智 6

希望这会有所帮助。

mt + facet_wrap(. ~ cyl, scales="free_y")
Run Code Online (Sandbox Code Playgroud)