r语言 - 如何在一个 ggplot 中制作多个绘图?



所以我有一个数据帧,我想在R中使用gglot2绘制。 让你明白我想要什么 示例 =

  1. 我有一个有 5 列 A、B、C、D、E 的表格。
  2. 我想绘制 A 对 B、A
  3. 对 C、A 对 D、A 对 E 的图形。
  4. 最后,我想将所有这些图合并为一个图,将图显示为 A 与 B、C、D、E。
  5. 还要注意的是,我的一个数据帧列的值低于 0.00x...。(这里 x = 任何数字(最多 3 位小数,所以我想确保缩放正确。

最后,感谢大家阅读本文并帮助我。

您可以单独制作每个绘图。然后将多个图组合在一起:

library(patchwork)
combined_plot <- plot_AvsB + plot_AvsC + plot_AvsD + plot_AvsE + plot_layout(ncol = 2)
combined_plot
library(grid)
library(ggplotify)
library(cowplot)
library(tidyverse)

创建所有图(plot_1到plot_n(,例如:

plot_1 <- ggplot(data, aes(x=x, y=y, fill=value)) + 
theme_classic() + 
theme(text = element_text(size=24), axis.text.x = element_text(angle=0, hjust=0.5), legend.position="none") +
geom_bar(stat="identity", color="black", position=position_dodge()) +
geom_errorbar(aes(ymin=lwr.ci, ymax=upr.ci), width=.2,position=position_dodge(.9)) + 
labs(y="ylab", x="xlab", subtitle = "subtitle") + scale_fill_manual(values=c("yellow", "blue"))

然后将它们放在一个简单的图中,如下所示:

pdf("many_plots_in_one.pdf")
plot_grid(plot_1, plot_2, plot_3, plot_4, plot_5, plot_6, ncol=3, labels=LETTERS[1:6])
dev.off()

最新更新