ggplot2 R 플롯에서 축 제한을 설정하는 방법은 무엇입니까?


358

나는 다음을 계획한다.

library(ggplot2)    

carrots <- data.frame(length = rnorm(500000, 10000, 10000))
cukes <- data.frame(length = rnorm(50000, 10000, 20000))
carrots$veg <- 'carrot'
cukes$veg <- 'cuke'
vegLengths <- rbind(carrots, cukes)

ggplot(vegLengths, aes(length, fill = veg)) +
 geom_density(alpha = 0.2)

이제 전체 범위 대신 x=-5000~ 사이의 영역 만 플롯하고 싶다고 가정 해보십시오 5000.

어떻게해야합니까?

답변:


584

기본적으로 두 가지 옵션이 있습니다

scale_x_continuous(limits = c(-5000, 5000))

또는

coord_cartesian(xlim = c(-5000, 5000)) 

첫 번째는 주어진 범위 밖의 모든 데이터 포인트를 제거하고 두 번째는 가시 영역 만 조정합니다. 대부분의 경우 차이가 보이지 않지만 데이터에 적합하면 적합치가 변경 될 수 있습니다.

축약 함수 xlim(또는 ylim)를 사용할 수도 있습니다. 첫 번째 옵션과 같이 지정된 범위 밖의 데이터 포인트를 제거합니다.

+ xlim(-5000, 5000)

자세한 내용은의 설명을 확인하십시오 coord_cartesian.

RStudio의 쪽지 를위한 ggplot2차종은 매우 시각적으로 취소이. 해당 치트 시트의 작은 섹션은 다음과 같습니다.

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

CC BY로 배포됩니다 .


16
또한 있습니다 library(scales); ... + scale_x_continuous(limits = c(-5000, 5000), oob=squish)(기본값은 oob=censor); 참조 ?squish, ?censor: groups.google.com/forum/#!topic/ggplot2/AsJ6xpmR9tU
벤 Bolker

5
NB. 일부 정점 외부 한계입니다 라인 / 폴리곤을 처리하는 경우 전체 객체가 플롯에서 제거 될 때이 문제가 될 수있다
geotheory

1
@ geotheory : coord_cartesian접근 방식 도 마찬가지 입니까?
Nick Stauner

1
아니요, 좀 더 구체적으로 말하면, 첫 번째 방법
지리 이론

실제로 '인쇄'목적 coord_cartesian(xlim = 을 위해 재설정해야 할 수도 ylim있고 레이블 및 그리드 나누기 를 재설정해야 할 수도 있습니다 .
PatrickT

44

빠른 참고 : coord_flip()x 및 y 축을 뒤집기 위해 사용 하는 경우이 coord_cartesian()두 기능이 독점적이기 때문에 범위 제한을 설정할 수 없습니다 ( 여기 참조 ).

다행히도 이것은 쉬운 수정입니다. 다음 coord_flip()과 같이 한계를 설정하십시오 .

p + coord_flip(ylim = c(3,5), xlim = c(100, 400))

이것은 가시 범위를 변경합니다 (즉, 데이터 포인트를 제거하지 않습니다).


나는 비슷하지만 더 어려운 질문을 여기 에 올렸습니다. stackoverflow.com/questions/61531149/…
면만
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.