R语言ggplot2: 使用grid.arrange()函数组合多个图表并调整图例位置

本文将介绍如何使用R语言的ggplot2和gridExtra包创建和组合多个图表,并灵活控制图例的位置和其他图表元素。

1. 准备数据

首先,你需要准备一个数据框。假设你的数据框名为df,包含以下列:

  • feedback: 反馈类型(例如,'正面','负面')* variation: 数值变量,用于绘制图表* variationPre: 数值变量,用于绘制图表* variationMid: 数值变量,用于绘制图表* variationPost: 数值变量,用于绘制图表

请确保你的数据框已经加载到R环境中。

2. 加载必要的包Rlibrary(ggplot2)library(gridExtra)

3. 创建单个图表

以下代码将创建四个单独的箱线图,并将图例放置在第一个图表的顶部:R# 设置图例只显示在第一幅图中f1 <- ggplot(aes(x = feedback, y = variation, colour = feedback), data = df) + geom_boxplot() + geom_jitter() + theme_bw() + theme(legend.position = 'top')

创建其他三个图表f2 <- ggplot(aes(x = feedback, y = variationPre, colour = feedback), data = df) + geom_boxplot() + geom_jitter() + theme_bw() + theme(legend.position = 'none')

f3 <- ggplot(aes(x = feedback, y = variationMid, colour = feedback), data = df) + geom_boxplot() + geom_jitter() + theme_bw() + theme(legend.position = 'none')

f4 <- ggplot(aes(x = feedback, y = variationPost, colour = feedback), data = df) + geom_boxplot() + geom_jitter() + theme_bw() + theme(legend.position = 'none')

4. 添加注释和修改样式R# 设置每幅图右上角的标记f1 <- f1 + annotate('text', x = max(df$feedback), y = max(df$variation), label = 'A', size = 8, vjust = 1, hjust = 1)f2 <- f2 + annotate('text', x = max(df$feedback), y = max(df$variationPre), label = 'B', size = 8, vjust = 1, hjust = 1)f3 <- f3 + annotate('text', x = max(df$feedback), y = max(df$variationMid), label = 'C', size = 8, vjust = 1, hjust = 1)f4 <- f4 + annotate('text', x = max(df$feedback), y = max(df$variationPost), label = 'D', size = 8, vjust = 1, hjust = 1)

设置坐标轴字体和刻度数值颜色font <- element_text(size = 18, family = '黑体')f1 <- f1 + theme(axis.text = font, axis.title = font)f2 <- f2 + theme(axis.text = font, axis.title = font)f3 <- f3 + theme(axis.text = font, axis.title = font)f4 <- f4 + theme(axis.text = font, axis.title = font)

5. 组合图表并保存R# 组合四幅图并保存fig1 <- grid.arrange(f1, f2, f3, f4, nrow = 2, ncol = 2)ggsave('Fig1.png', fig1, width = 20, height = 14, units = 'cm', dpi = 300)

修改为小提琴图并保存f1_violin <- f1 + geom_violin()f2_violin <- f2 + geom_violin()f3_violin <- f3 + geom_violin()f4_violin <- f4 + geom_violin()fig2 <- grid.arrange(f1_violin, f2_violin, f3_violin, f4_violin, nrow = 2, ncol = 2)ggsave('Fig2.png', fig2, width = 20, height = 14, units = 'cm', dpi = 300)

这段代码将生成两张图片:

  • Fig1.png: 包含四个箱线图的组合图表* Fig2.png: 包含四个小提琴图的组合图表

总结

通过以上步骤,你学习了如何使用ggplot2和gridExtra包创建和组合多个图表,并灵活控制图例位置和其他图表元素。 这将使你能够创建更清晰、更易于理解的数据可视化结果。


原文地址: https://www.cveoy.top/t/topic/cOn7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录