You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用plot_grid()并排展示ggplot图形时如何保持原始宽高比

解决ggplot并排图形垂直拉伸的问题

要保持单个ggplot图形的原始宽高比,避免plot_grid()组合后垂直拉伸,可从以下几个方向调整:

1. 给单个图形设置固定宽高比

在每个ggplot对象的theme()中添加aspect.ratio参数,指定你想要的宽高比(数值可根据单独绘制时的比例调整):

values1.graph <- ggplot(data = values1.df) +
  geom_histogram(mapping = aes(x = values1, y = after_stat(density)), fill="steelblue", colour="black", binwidth = 1) +
  ggtitle("Hist .vs. Norm 1") +
  stat_function(fun = dnorm, args = with(values1.df, c(mean = mean(values1), sd = sd(values1)))) +
  theme(aspect.ratio = 1.2)  # 固定宽高比

values2.graph <- ggplot(data = values2.df) +
  geom_histogram(mapping = aes(x = values2, y = after_stat(density)), fill="steelblue", colour="black", binwidth = 1) +
  ggtitle("Hist .vs. Norm 2") +
  stat_function(fun = dnorm, args = with(values2.df, c(mean = mean(values2), sd = sd(values2)))) +
  theme(aspect.ratio = 1.2)

plot_grid(values1.graph, values2.graph, labels = NULL)

每个图形会严格遵循设定的宽高比,组合后不会被拉伸变形。

2. 在plot_grid中控制整体宽高比

使用plot_grid()的aspect_ratio参数,直接指定组合图的整体宽高比,强制图形保持比例:

plot_grid(values1.graph, values2.graph, labels = NULL, aspect_ratio = 2)

参数值可按需调整,比如两个图并排时设为2(宽是高的2倍),能匹配单个图的常规比例。

3. 调整Markdown代码块的绘图尺寸

在R Markdown的代码块开头设置fig.width和fig.height,直接控制输出图形的整体尺寸,间接维持宽高比:

```{r, fig.width=8, fig.height=4}
plot_grid(values1.graph, values2.graph, labels = NULL)
这里`fig.width=8`和`fig.height=4`的比例为2:1,对应两个图并排的整体尺寸,你可以根据单个图的原始宽高比调整数值(比如单个图宽高比为1.5,可设`fig.width=6, fig.height=4`)。

## 4. 换用patchwork包(可选)
patchwork包对图形布局的比例控制更友好,默认会保留单个图形的宽高比:

```r
# 先安装包:install.packages("patchwork")
library(patchwork)

# 直接用+号组合图形
values1.graph + values2.graph

# 如需调整布局,可添加plot_layout
values1.graph + values2.graph + plot_layout(ncol = 2, widths = c(1, 1))

内容的提问来源于stack exchange,提问作者Kaikus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 18:26:03