Har*_*rry 2 r ggplot2 facet-grid
我有一个数据框来绘制具有相同 x 轴和不同 y 轴的多个面板。列数可能会有所不同。我使用 ggplot 和facet_grid 来绘制这些面板。
问题在于,整个图的大小似乎是相同的,因此当出现更多面板时,每个面板的尺寸都非常小。
有没有什么方法可以固定每个面板的尺寸,并且图形的整体尺寸会根据列和面板的数量而变化?谢谢。
我很抱歉无意中的自我推销,但我不久前编写了一个函数来更精确地控制面板的尺寸。我已经把它打包到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 创建
希望有帮助。