我正在使用R和ggplot2包来创建包含多个子图的图,每个子图都是带有误差线的条形图。每个子图必须具有单独的y标度,因为最小值和最大值相对于小平面变化很大。我的另一个限制是我希望条形图从非零值开始(类似于框图,小提琴图或点图的工作方式)。这是我到目前为止所尝试的:
# SIMULATION DATA
volumes1 <- rnorm(40, mean=4, sd=0.2)
volumes2 <- rnorm(40, mean=35, sd=1)
region1 <- rep('Cerebrum', times=40)
region2 <- rep('Cerebellum', times=40)
name1 <- rep('name1', times=20)
name2 <- rep('name2', times=20)
names <- rep(c(name1, name2), times=2)
genotypes <- rep(c('g1', 'g2'), times=40)
meansData <- data.frame(name=names, genotype=genotypes, region=c(region1, region2), volume=c(volumes1, volumes2))
# GGPLOT2
library(ggplot2)
library(Hmisc)
meansPlot = ggplot(data=meansData, aes(x=name, y=volume, fill=genotype, colour=genotype))
meansPlot = (meansPlot
+ stat_summary(fun.y=mean, position=position_dodge(width=1), geom='bar')
+ stat_summary(fun.data=mean_cl_normal, position=position_dodge(width=1), geom='errorbar', color='black', size=0.5, width=0.5))
meansPlot = (meansPlot + facet_wrap( ~ region, scales='free'))
meansPlot
一切都很好,除了条形图由于某种原因必须从0开始,因此条形之间的差异变得不那么明显。如果你问我,那很难看。我已经尝试添加scale_y_continuous,但这只适用于情节只有1个子图,它也会使条消失,这显然是不可取的。
如果你有一个解决方案,让我知道如何从y轴缩放的非零值开始!这会有很大帮助。谢谢。