调整通过 ggplot() 和 facet_grid 绘制的面板的大小

Adjust the size of panels plotted through ggplot() and facet_grid

我有一个数据框来绘制具有相同 x 轴和不同 y 轴的多个面板。列数可能会有所不同。我使用 ggplot 和 facet_grid 来绘制这些面板。

问题是整个图的大小似乎是一样的,所以当出现更多的面板时,每个面板的大小都很小。

是否有任何方法可以固定每个面板的大小以及图形的整体大小根据列和面板的数量而变化?谢谢

很抱歉无意中的自我提升,但我前阵子写了一个函数来更精确地控制面板的大小。我已经把它放在 github CRAN 上的一个包中。我不确定它如何与闪亮的应用程序一起工作,但这里是你如何在 ggplot2 中使用它。

您可以通过为 rows/colums 设置纯数字来控制 width/height 的相对大小。

library(ggplot2)
library(ggh4x)

df <- expand.grid(1:12, 3:5)
df$x <- 1

ggplot(df, aes(x, x)) +
  geom_point() +
  facet_grid(Var1 ~ Var2) +
  force_panelsizes(rows = 1, cols = 2, TRUE)

您还可以通过设置 unit 对象来控制面板的绝对大小。请注意,如果您事先知道面板的数量,也可以为单独的行和列设置它们。

ggplot(df, aes(x, x)) +
  geom_point() +
  facet_grid(Var1 ~ Var2) +
  force_panelsizes(rows = unit(runif(12) + 0.1, "cm"), 
                   cols = unit(c(1, 5, 2), "cm"), 
                   TRUE)

reprex package (v0.3.0)

于 2020-05-05 创建

希望对您有所帮助。