2012-06-26 43 views
55

是否可以只设置连续刻度极限的下限?我想让所有我的地块为基础而不需要指定上限。只设置ggplot极限的下限

例如

+ scale_y_continuous(minlim=0) 

回答

77

您可以使用expand_limits

ggplot(mtcars, aes(wt, mpg)) + geom_point() + expand_limits(y=0) 

以下是两者的对比:

  • 没有expand_limits

  • expand_limits

作为的ggplot2 1.0.0版本中,你只能指定一个限制,有其他的是因为它通常通过将第二个限制设置为NA来确定。这种方法将允许扩展和截断轴范围。

ggplot(mtcars, aes(wt, mpg)) + geom_point() + 
    scale_y_continuous(limits = c(0, NA)) 

指定它经由ylim(c(0, NA))给出相同的数字。

+0

@PatrickT你的意思是说,作为评论http://stackoverflow.com/q/27028825/892313? –

+0

正是我在找的东西。谢谢 – Veera

-1

我不认为你可以直接做到这一点。但作为变通,你可以模仿GGPLOT2确定上限的方式:

scale_y_continuous(limits=c(0, max(mydata$y) * 1.1)) 
9

如何使用aes(ymin=0),如:

ggplot(mtcars, aes(wt, mpg)) + geom_point() + aes(ymin=0) 
+7

这覆盖了gemin_errorbar等的ymin; expand_limits()似乎更安全。 – Mark

+0

这不是通用的,就像''geom_density''它给了我''错误:stat_bin()不能与ay审美一起使用,或者当放置在geom_density中''警告:忽略未知美学:ymin''(后者完全可以预计) – PatrickT

0

您也可以尝试下面的代码,它将使您的min y轴为零,并且x轴和min y值之间没有额外的间隙。

scale_y_continuous(limits = c(0, NA), expand = c(0,0))