Как я могу сделать несколько графиков в одном ggplot?
Итак, у меня есть фрейм данных, который я хочу построить с помощью gglot2 в R. Чтобы вы поняли, чего я хочу. Пример =
- У меня есть таблица с 5 столбцами A, B, C, D, E.
- Я хочу построить график A против B, A против C, A против D, A против E.
- Наконец, я хочу объединить все эти графики в один, который будет отображать график как A против B, C, D, E.
- Также следует отметить, что один из моих столбцов фрейма данных имеет значения ниже 0,00x.... (здесь x = любое число) до 3 десятичных знаков, поэтому я хочу убедиться, что масштабирование правильное.
Наконец, спасибо всем за то, что прочитали это и помогли мне.
2 ответа
Можно сделать каждый сюжет отдельно. Затем объедините несколько графиков вместе:
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()