【发布时间】:2020-12-13 17:48:33
【问题描述】:
我知道,以前也有人问过类似的问题,但没有完全解释答案和/或该解决方案不适用于我的情况,所以:
你如何在一页上安排几个用循环创建的ggplot?
在寻找答案时,我发现了一些如果每个地块都有自己的名称可能会奏效。例如,grid_arrange_shared_legend 可能正是我所需要的,但是通过我创建的循环,每个情节都覆盖了前一个情节。所以也许问题是:有没有办法给每个 ggplots 赋予唯一的名称?
为了更好地了解我的具体情况,这里有一段代码,用于在 mtcars 数据库上复制它;不同档位平均mpg柱状图,每缸一个柱状图:
library(dplyr)
library(ggplot2)
cylinder<-unique(mtcars$cyl)
for (value in cylinder) {
m<-mtcars%>%
filter(cyl==value)%>%
group_by (gear)%>%
summarise(number=n(), average=mean(mpg), se=sd(mpg))
print(m) # reporting the numbers
a<-m%>%
mutate(gear=factor(gear, levels=unique(gear)))%>%
ggplot()+
geom_bar(aes(x=gear, y=average), stat = 'identity', fill ='red') +
geom_errorbar( aes(x= gear, ymin=average-se, ymax=average+se), width=0.2, colour="black", alpha=1, size=1) +
xlab("gears") + ylab("average mpg") +
ggtitle (paste( "cyliner:", value ))+
theme(axis.ticks.x=element_blank())
print(a) }
【问题讨论】: