2012-06-26 86 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))