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

Har*_*rry 2 r ggplot2 facet-grid

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

问题在于,整个图的大小似乎是相同的,因此当出现更多面板时,每个面板的尺寸都非常小。

有没有什么方法可以固定每个面板的尺寸,并且图形的整体尺寸会根据列和面板的数量而变化?谢谢。

teu*_*and 5

我很抱歉无意中的自我推销,但我不久前编写了一个函数来更精确地控制面板的尺寸。我已经把它打包到github上了 CRAN 上的一个包中了。我不确定它如何与闪亮的应用程序一起使用,但这是您在 ggplot2 中如何使用它。

您可以通过设置行/列的普通数字来控制宽度/高度的相对大小。

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)
Run Code Online (Sandbox Code Playgroud)

您还可以通过设置对象来控制面板的绝对大小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)
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v0.3.0)于 2020-05-05 创建

希望有帮助。