1

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

我的代码看起来像这样

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)

这会产生以下图像。

ggplot2 的图像输出

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

4

1 回答 1

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")
于 2012-10-31T16:38:00.497 回答