我正在努力以相同的比例并排显示两个条形图
我的代码看起来像这样
library(ggplot2)
library(gridExtra)
#dataframe definition
rm(list=ls(all=TRUE))
mydata <- data.frame(a=1:10,b=c('yes','no'),c=seq(2,20,2))
plot1<- ggplot(mydata, aes(x=factor(mydata$b), y=100*a), order=f, fill=grey) +
stat_summary(fun.y="mean", geo m="bar", colour="black")+xlab("Factor b") +
ylab("Value of a")
plot2<- ggplot(mydata, aes(x=factor(mydata$b), y=c), order=f) +
stat_summary(fun.y="mean", geom="bar", colour="black")+xlab("Factor b") +
ylab("Value of b")
grid.arrange(plot1, plot2, ncol=2)
产生以下图像。
我想以一种方式定位它们,垂直轴对于两个条形图具有相同的比例。 我在gridExtra手册上找不到任何文档。
答案 0 :(得分:2)
这样的事情怎么样?
library(ggplot2)
library(reshape2)
mydata <- data.frame(a=1:10,b=c('yes','no'),c=seq(2,20,2))
df <- melt(mydata, id.vars="b")
df[which(df$variable=="a"),]$value <- df[which(df$variable=="a"),]$value * 100
ggplot(df, aes(factor(b), value)) +
stat_summary(fun.y="mean", geom="bar", colour="black") + facet_grid(.~variable)
# If you need free scales, then:
ggplot(df, aes(factor(b), value)) +
stat_summary(fun.y="mean", geom="bar", colour="black") +
facet_wrap( ~variable, scales = "free_y")