R语言如何使用ggplot函数将两个图表上下拼接至同一绘图面板
ggplot2双图上下排布实现方案
直接使用patchwork包完成组合即可,不需要修改你已经写好的单图绘图逻辑,操作步骤如下:
- 第一步:安装并加载依赖包
# 首次使用需运行安装命令 install.packages("patchwork") library(patchwork) library(ggplot2)
- 第二步:修正原有代码的语法错误
你写的第一张图代码末尾多了一个多余的+运算符,直接运行会报错,修正后的单图代码如下:
# 图1:高学历求职者占比趋势 academic_plot <- ggplot(q1Subset, aes(MONTH, percAcademics)) + geom_point(color="green") + stat_smooth(method = "lm", formula = y ~ x, geom = "smooth") + theme_minimal() + ggtitle("Percentage of Academic Seekers") + ylab("Academic Seekers (%)") # 图2:女性求职者占比趋势 women_plot <- ggplot(q1Subset, aes(MONTH, percWomen)) + geom_point(color="red") + stat_smooth(method = "lm", formula = y ~ x, geom = "smooth") + theme_minimal() + ggtitle("Percentage of Women Seekers") + ylab("Women Seekers (%)")
- 第三步:按上下排布组合两个图表
patchwork里用/运算符代表纵向按行拼接图表,直接运行下面的代码就能得到上下排布的同一面板效果:
# 组合图表:高学历占比图在上,女性占比图在下 combined_plot <- academic_plot / women_plot # 输出展示组合结果 combined_plot
可选调整:如果需要自定义两个图的高度比例,可以追加
plot_layout()参数,比如设置两图高度1:1可写为academic_plot / women_plot + plot_layout(heights = c(1,1));如果需要给整个面板加总标题,可以追加plot_annotation(title = "求职者群体结构变化趋势")。
内容的提问来源于stack exchange,提问作者Tal Itach
相关产品推荐
相关产品推荐

