원점이 0에서 시작하도록 강제


139

ggplot2에서 y 축과 x 축의 원점 / 차단을 어떻게 설정할 수 있습니까?

x 축의 선은 정확히이어야합니다 y=Z.

함께 Z=0또는 다른 소정 값.

답변:


199

xlim그리고 ylim여기에 그것을 잘라하지 않습니다. 당신은 사용할 필요가 expand_limits, scale_x_continuous그리고 scale_y_continuous. 시험:

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for

여기에 이미지 설명을 입력하십시오

p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))

여기에 이미지 설명을 입력하십시오

점이 잘리지 않도록 약간 조정해야 할 수도 있습니다 (예 : x = 5및 참조) y = 5.


29
나는 또한 한계를 지정해야했다 : scale_x_continuous(expand = c(0, 0), limits = c(0,5)), 어떻게 든 그것이 작동하지 않았다
JelenaČuklina

3
나는 하나 이상의 조각이 도움이 될 수 있다고 생각합니다. 이는 무언가를 사용 expand=expand_scale(mult=c(0,0.1))하여 상단에 여전히 패딩을 얻습니다 : stackoverflow.com/a/59056123/8400969
Michael

4

ggplot에 다음을 추가하십시오.

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

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for


p + scale_x_continuous(expand = c(0, 0), limits = c(0,NA)) + 
  scale_y_continuous(expand = c(0, 0), limits = c(0, NA))

여기에 이미지 설명을 입력하십시오

마지막으로, 가지고 실수 차트 떨어져 데이터를 제외하지 않도록주의하십시오 . 예를 들어, a로 position = 'dodge'인해 막대가 차트에서 완전히 사라질 수 있습니다 (예 : 값이 0이고 축을 0으로 시작하는 경우).이 값이 표시되지 않거나 표시되지 않을 수도 있습니다. 데이터를 먼저 플로팅하고 검사 한 다음 위의 팁을 사용하여 플롯의 미학을 향상시키는 것이 좋습니다.


이것을 새로운 ggplot 테마로 만들 수도 있습니까?
Bolle

@Bolle 나는 확실하지 않지만, 또한 알아
내고자한다면

나중에 참조 할 수 있도록 여기 에 링크
stevec
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.