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

Rmarkdown中使用coord.fixed()绘制分面ggplot时生成的文档出现上下空白问题求助

Rmarkdown中使用coord.fixed()绘制分面ggplot时生成的文档出现上下空白问题求助

大家好,我最近在Rmarkdown里用ggplot绘图时碰到了一个头疼的问题:当给分面图加上coord_fixed()后,生成的文档总会出现多余的上下空白。先给大家放完整的可复现代码,方便大家重现问题:

valN <- 2000
valCorr <- .7
matCov <- matrix(c(1, valCorr, valCorr, 1), byrow = TRUE, ncol = 2)
vecMeans <- c(0, 0)
MASS::mvrnorm(n = valN, mu = vecMeans, Sigma = matCov) %>%
  as_tibble(.name_repair = "universal") %>%
  rename(Pre = `...1`,
         Post = `...2`) %>%
  mutate(ID = row_number(),
         group = ID %% 2) -> tibDat

情况1:无分面的基础绘图,无多余空白

先画了一个普通的散点拟合图,设置了轴范围并加上coord_fixed(),这时候生成的图完全正常,没有多余空白:

ggplot(data = tibDat,
       aes(x = Pre, y = Post)) +
  geom_point(alpha = .1) +
  geom_smooth() +
  xlim(c(-4, 4)) +
  ylim(c(-4, 4)) +
  coord_fixed()

情况2:分面但不使用coord_fixed(),无多余空白

接着我把图按group分面,去掉coord_fixed()后,生成的图依然正常,没有出现多余空白:

ggplot(data = tibDat,
       aes(x = Pre, y = Post)) +
  facet_grid(cols = vars(group),
             space = "free",
             ) +
  geom_point(alpha = .1) +
  geom_smooth() +
  xlim(c(-4, 4)) +
  ylim(c(-4, 4)) 

情况3:分面且添加coord_fixed(),出现额外上下空白

但只要给分面图加上coord_fixed(),生成的文档里就会莫名出现多余的上下空白,对应的代码如下:

ggplot(data = tibDat,
       aes(x = Pre, y = Post)) +
  facet_grid(cols = vars(group),
             space = "free",
             ) +
  geom_point(alpha = .1) +
  geom_smooth() +
  xlim(c(-4, 4)) +
  ylim(c(-4, 4)) +
  coord_fixed()

有没有朋友遇到过类似的问题?或者知道怎么解决分面后加coord_fixed()产生多余空白的问题吗?麻烦大家帮忙指点一下,谢谢啦!

备注:内容来源于stack exchange,提问作者cpsyctc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 09:04:34