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

如何在R中实现非对称布局的多图展示(含地图与直方图)

实现非对称多图布局(替代grid.arrange)

推荐使用patchwork包来实现灵活的非对称多图布局,它对ggplot2系列图形(包括ggOceanMaps生成的地图)支持非常友好,语法比gridExtra更直观。

步骤1:安装并加载patchwork

install.packages("patchwork")
library(patchwork)

步骤2:组合图形实现非对称布局

假设你已经生成了三个图形对象:

  • p_map:基于ggOceanMaps的全球地图
  • p_hist_lat:纬度数据分布直方图
  • p_hist_lon:经度数据分布直方图

以下代码实现地图占据左侧2/3宽度,两个直方图在右侧上下排列的非对称布局(可根据你的参考图调整比例):

# 组合布局:地图 + (纬度直方图 / 经度直方图)
p_map + (p_hist_lat / p_hist_lon) +
  # 设置列数和宽度比例,实现非对称
  plot_layout(ncol = 2, widths = c(2, 1)) +
  # 可选:添加图标签(A/B/C)
  plot_annotation(tag_levels = "A")

关键语法说明

  • +:用于拼接不同图形对象
  • /:将两个图形垂直堆叠(上下排列)
  • plot_layout():自定义布局参数,widths控制列宽比例,heights可控制行高比例
  • 若需要其他非对称样式(比如地图在上,两个直方图在下且宽度不同),可以调整布局:
p_map + (p_hist_lat + p_hist_lon) +
  plot_layout(nrow = 2, heights = c(3, 1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:27:03