ggplot에 대한 한계의 하한 만 설정


81

연속 스케일 제한의 하한 만 설정할 수 있습니까? 상한선을 지정할 필요없이 모든 플롯을 0 기반으로 만들고 싶습니다.

예 :

+ scale_y_continuous(minlim=0)

답변:


116

당신이 사용할 수있는 expand_limits

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

다음은 두 가지를 비교 한 것입니다.

  • 없이 expand_limits

  • expand_limits

의 버전 1.0.0 ggplot2부터는 하나의 제한 만 지정할 수 있으며 다른 제한은 두 번째 제한을로 설정하여 일반적으로 결정되는 것과 같습니다 NA. 이 접근 방식은 축 범위의 확장 및 절단을 모두 허용합니다.

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

이를 통해 지정 ylim(c(0, NA))하면 동일한 그림이 제공됩니다.


@PatrickT 당신은 stackoverflow.com/q/27028825/892313에 대한 코멘트로 그것을 의미 했습니까 ?
Brian Diggs 2014

내가 찾던 바로 그것. 감사합니다
Veera

12

를 사용하는 방법은 aes(ymin=0)다음과 같습니다.

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

7
이것은 geom_errorbar 등에 대한 ymin을 대체합니다. expand_limits ()가 더 안전 해 보입니다.
Mark

이것은 보편적이지 않습니다. geom_density그것은 나에게 제공 Error: stat_bin() must not be used with a y aesthetic되거나 geom_density, 안에 배치 될 때 Warning: Ignoring unknown aesthetics: ymin(후자는 완전히 예상됩니다)
PatrickT

7

0에서 최소 y 축을 제공하고 x 축과 최소 y 값 사이에 추가 간격없이 다음 코드를 시도 할 수도 있습니다.

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

1
coord_cartesian()대신 이것을 할 방법이 있습니까?
randy

-1

나는 당신이 이것을 직접 할 수 있다고 생각하지 않습니다. 그러나 해결 방법으로 ggplot2가 상한을 결정하는 방식을 모방 할 수 있습니다.

scale_y_continuous(limits=c(0, max(mydata$y) * 1.1))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.