R中使用plot_grid合并绘图时如何控制绘图区与X轴比例且不缩小文字
解决方案
问题根源是纵向合并时每个子图的总高度被压缩,字号不变的情况下X轴文字占比自然上升,可通过以下方式调整:
- 修正未赋值的代码问题:你当前对p_mammals添加的额外标签和关闭裁剪的操作没有赋值回变量,合并时不会生效,先修正:
p_mammals <- p_mammals + draw_label("'", x = 14.3, y = -30.5, angle=70, size = 20, colour="black")+ coord_cartesian(ylim = c(0, 100), clip = "off")
- 统一两个图的边距,给X轴留出固定空间,避免绘图区被挤压:将两个图的plot.margin统一设置,底部预留足够高度放X轴文字,比如都改成:
theme(plot.margin=unit(c(0.5,0.5,2,0.5),"cm")) # 四个参数对应上、右、下、左的边距,底部设为2cm容纳X轴文字
- 调整合并图的导出参数:用ggsave保存合并图时,加大总高度参数,给每个子图留出足够的绘图空间,X轴文字占比就会恢复到单图的比例:
ggsave("combined_plot.png", combined_plot, width = 10, height = 16, dpi = 300)
- 可选:换用patchwork包做合并,对齐逻辑更友好,无需额外调整就能保留单图的元素比例:
# 安装加载包 install.packages("patchwork") library(patchwork) # 直接纵向合并 combined_plot <- p_mammals / p_birds + plot_layout(ncol = 1, heights = c(1,1)) # heights设置两个子图的高度比例
内容的提问来源于stack exchange,提问作者YBM
相关产品推荐
相关产品推荐

