R ggplot2条形图小平面包裹,其中scale = free,y轴从非零值开始

时间:2015-06-03 21:25:28

标签: r ggplot2 bar-chart

我正在使用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轴缩放的非零值开始!这会有很大帮助。谢谢。

0 个答案:

没有答案