与ggplot2和R并排排列条形图

时间:2012-10-31 16:25:46

标签: r ggplot2

我正在努力以相同的比例并排显示两个条形图

我的代码看起来像这样

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)

产生以下图像。

Image output from ggplot2

我想以一种方式定位它们,垂直轴对于两个条形图具有相同的比例。 我在gridExtra手册上找不到任何文档。

1 个答案:

答案 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")