2017-12-23 18 views
4

y軸の最小値または最大値を指定できるプロットを作成しようとしています。しかし、私はdocumentationからError in if (zero_range(range)) { : missing value where TRUE/FALSE neededggplot set ylim min OR max

を得る:

NAはデータの範囲から計算するとあなたは一つの値を残すことができます。

このように、私がやった:

#Getting some data in 
plot <- ggplot(mydata, 
       aes_string(y="yvar", x="xvar", colour="group", group="group", fill="group") 
      ) 
#Adding some error bars 
plot <- plot + geom_errorbar(aes(ymax=agg+var, ymin=agg-var), size=0.5, colour="black", data=mydata) 

plot <- plot + geom_point(size=4) 
plot <- plot + geom_line(size=1) 

#Here is when I just want to set y max 
plot <- plot + coord_cartesian(ylim= c(NA, 100)) 

私はylimを削除するか、数値にNAを変更すると、それはうまく動作します。私はここで何が欠けていますか?

答えて

6

拡張の制限を使用して、軸を一方向にのみ拡張できます。たとえば:

ggplot(mtcars, aes(wt, mpg)) + 
    geom_point() + 
    expand_limits(y=c(NA, 50)) 

ご例えば、それは次のようになります。

plot + expand_limits(y=c(NA, 100)) 

あなたも、単一の値を提供することができます。その値がデータの最大値より大きい場合は、最大値が拡張されます。データの最小値よりも小さい場合は、最小値を拡大します。あなたの例では:

p = ggplot(mtcars, aes(wt, mpg)) + 
    geom_point() 

p + expand_limits(y=-20) 
p + expand_limits(y=200) 

enter image description here

plot + expand_limits(y=100) 

そしてここでは、二つの再現性の例があります