答案 0 :(得分:3)
这是一个分面的例子。如果您提供了数据,这将更容易很多。请在将来这样做!!
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)
说明:我假设您的AMP,ADP和ATP数据位于不同的列中,这就是您制作三个不同ggplots的原因(当然我不能知道因为你没有提供你的数据(!!))。处理此问题的正确方法可以转换来自&#34; wide&#34;格式(不同列中的数据)到&#34; long&#34; format(一列中的所有数据,第二列用于区分原始列)。我们在reshape包中使用melt(...)
。然后,我们可以使用ID
进行填充,并使用Adenosine
划分为方面。
此模式:宽数据&gt; <长数据> ggplot非常常见。如果你打算定期使用ggplot,你应该熟悉它。