Вот пример facetting. Это было бы много проще, если бы вы предоставили свои данные. Пожалуйста, сделайте это в будущем!
set.seed(1)
df <- data.frame(ID=rep(c("WTN","KON","WTH","KOH"),each=30),
AMP = rnorm(120, sd=20),
ADP = rnorm(120, sd=10),
ATP = rnorm(120, sd=30))
library(reshape2)
library(ggplot2)
gg.df <- melt(df, id="ID", variable.name="Adenosine")
ggplot(gg.df, aes(x=ID, y=value, fill=ID))+
geom_boxplot()+
facet_wrap(~Adenosine)
Объяснение: Я предполагаю, что ваши данные для АМФ, АДФ и АТФ в разных колонках, и именно поэтому вы сделали три различных ggplots (конечно, я не могу знать, потому что вы не предоставили свои данные (!!)). Правильный метод решения этой проблемы преобразует ваши данные из «широкого» формата (данные в разных столбцах) в «длинный» формат (все данные в одном столбце со вторым столбцом, чтобы отличать исходные столбцы). Для этого мы используем melt(...)
. Затем мы можем заполнить с помощью ID
и разделить на грани, используя Adenosine
.
Этот шаблон: широкоформатные данные> длинные данные> ggplot чрезвычайно распространен. Если вы планируете регулярно пользоваться ggplot, вам следует ознакомиться с ним.
Возможно, касательная, но вы можете рассмотреть возможность удаления легенд с двух участков. Они одинаковы во всех изображениях. – Heroka
Для этого вы должны использовать 'facet_grid (...)' или 'facet_wrap (...)'. – jlhoward