【发布时间】:2016-06-14 14:51:06
【问题描述】:
有没有办法改变facet_grid 或facet_wrap 中各个刻面的y 轴高度/长度?
例如,
library(ggplot2)
ggplot(economics_long[economics_long$variable %in% c("pop", "uempmed"),], aes(date, value)) +
geom_line() +
facet_grid(variable~., scales = "free_y") +
theme(strip.background = element_blank())
在上图中,我希望 pop 时间序列 y 轴高度/长度是 uempmed y 轴长度 (2:1) 的两倍,而不管两个时间序列的事实如何有不同的 y 轴刻度。
就像 Kohske 在这里所做的那样,在更旧版本的 ggplot2 中,它在 ggplot >=2.0.0 中不起作用:
https://kohske.wordpress.com/2010/12/25/adjusting-the-relative-space-of-a-facet-grid/
我知道我可以在facet_grid 中指定参数space = "free",但我认为该参数不能用于设置 2:1 的 y 轴比例?
我也不想使用“grid.arrange 类型”解决方案来排列单独创建的 ggplots(我可以在其中制作 2 个具有不同 y 轴长度的单独图),因为理想情况下我想使用在这个单一的facet_wrap 情节中,Shiny 的交互式 ggplot2 功能(例如,带有画笔的交互式闪亮面示例在页面的中间:http://shiny.rstudio.com/articles/selecting-rows-of-data.html)。
【问题讨论】:
-
您找到解决问题的方法了吗?我在问,因为我有完全相同的问题。当您有 3 个网格并且您希望它们按比例 (2, 1, 1) 时该怎么办。使用 grid_extra 和 heights 参数很容易做到,但它们不能很好地垂直对齐
-
不幸的是还没有。也许有办法,特别是在过去一年左右对 ggplot2 的更新,但我不知道。我的猜测是它可能仍然需要在我完全不熟悉的 ggplot2 源代码中实现。