指定ylim时geom_bar栏不显示

时间:2012-04-28 15:57:56

标签: r ggplot2

我遇到了geom_bars的问题,当我在y轴上指定限制时,不会渲染条形。我相信以下内容应该重现这个问题:

data <- structure(list(RoleCond = structure(c(1L, 1L, 2L, 2L), .Label = c("Buyer", "Seller"), class = "factor"), 
                   ArgCond = structure(c(1L, 2L, 1L, 2L), .Label = c("No Argument", "Argument"), class = "factor"), 
                   mean = c(2210.71428571429, 2142.70833333333, 2282.40740740741, 2346.2962962963), 
                   se = c(20.1231042081511, 16.7408757749718, 20.1471554637891, 15.708092540868)), 
                   .Names = c("RoleCond", "ArgCond", "mean", "se"), row.names = c(NA, -4L), class = "data.frame")

library(ggplot2)    
ggplot(data=data, aes(fill=RoleCond, y=mean, x=ArgCond)) + 
      geom_bar(position="dodge", stat="identity") + 
      geom_errorbar(limits, position=dodge, width=0.1, size=.75) + 
      scale_y_continuous(limits=c(2000,2500))

给了我这个

no bars

没有指定限制的相同代码可以正常工作。 geom_errorbar()似乎与问题无关,但它确实说明了条形图应该出现在哪里。

我尝试使用coord_cartesian(ylim=c(2000,2500))来限制y轴并显示条形图,但轴标签搞砸了,我不明白我在做什么。

感谢您的任何建议! (我使用的是R 2.15.0和ggplot2 0.9.0)

2 个答案:

答案 0 :(得分:41)

您可以尝试使用library(scales)

+ scale_y_continuous(limits=c(2000,2500),oob = rescale_none)

相反,如here所示。

答案 1 :(得分:7)

根据之前分享的链接,这对我有用。

p + coord_cartesian(ylim=c(5,15))