2017-12-23 4 views
4

y 축의 최소값 또는 최대 값을 지정할 수있는 플롯을 만들려고합니다. 하지만 난 documentation에서ggplot set ylim min or max

Error in if (zero_range(range)) { : missing value where TRUE/FALSE needed를 얻을 : 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) 

그리고 여기에 두 재현 예입니다