티스토리 뷰
ggplot2 그래프 일부분만 줌인해서 확대해서 보거나, 더 넓은 범위위에서 전체그림을 보고 싶을 때가 있다. ggplot 라이브러리의 coord_cartesian 함수를 사용하면 그래프를 x축 y축을 축소, 확대 하는게 손쉽게 가능하다.
가볍게 라인그래프 하나 그려본다.
library(tidyverse)
t = tibble(x = c(4,5,6), y = c(50, 30, 40))
ggplot(t, aes(x, y))+
geom_line()
여기서 값은 3개뿐이지만, 그 외의 범위로 보고 싶다면 어떻게 해야 할까. 만약 x 축을 1~10의 범위로 보고싶다면, 아래와 같이 실행하면 된다. limits 로 1에서부터 10까지 보고싶은 범위를 지정하고, breaks 를 이용해서 x 축의 레이블을 정한다. 2개 예제 다 동일한 결과를 가져오긴 하지만 이건 원래 그래프 값보다 더 넓은 범위를 보여주다보니 차이가 느껴지지 않는 것이고, 줌인을 하면 달라진다.
ggplot(t, aes(x, y))+
geom_line() +
scale_x_continuous(limits = c(1,10), breaks = seq(1,10,0.5))
ggplot(t, aes(x, y))+
geom_line() +
coord_cartesian(xlim = c(1,10)) +
scale_x_continuous(breaks = seq(1,10,0.5))
만약 scale_x_continuous 에서 limits 를 4.5~5.5 로 변경하면 어떻게 될까. warning 이 나오면서 2개의 missing values 가 생겼다고 한다. 그래프에는 아무것도 표시가 안된다. 이유는 scale_x_continuous 로 limit 를 정해버리면 앞서 데이터 t 에 정해진 x 축 3개 값중에 1개만 포함이 되다보니, 선을 연결할 데이터가 없어져 그래프가 그려지지 않는다.
ggplot(t, aes(x, y))+
geom_line() +
scale_x_continuous(limits = c(4.5, 5.5))
geom_path: Each group consists of only one observation. Do you need to adjust the
group aesthetic?
Warning message:
Removed 2 row(s) containing missing values (geom_path).
그래서 값을 한정하는게 아니라 보여주는 범위만 좁혀서 줌인을 하고 싶다면, coord_cartesian 로 지정해야 한다. 그래프의 값이 누락됨이 없이 원하는 범위 기준으로 확대됨을 볼 수 있다.
ggplot(t, aes(x, y))+
geom_line() +
coord_cartesian(xlim = c(4.5, 5.5))
breaks 를 추가로 정의해서 x 축 레이블을 지정할 수 있다.
ggplot(t, aes(x, y))+
geom_line() +
coord_cartesian(xlim = c(4.5,5.5)) +
scale_x_continuous(breaks = seq(4.7, 5.3, 0.1))
- Total
- Today
- Yesterday
- javascript
- Google Chart Tools
- 셀프개통
- 맥북
- SVN
- Oracle
- java
- ktm모바일
- github
- MyBatis
- ipTIME
- 도넛차트
- Spring
- ggplot
- MySQL
- 자급제폰
- 마인크래프트
- 알뜰요금제
- python
- docker
- eclipse
- ubuntu
- heroku
- MongoDB
- vagrant
- 막대그래프
- R
- 이클립스
- ggplot2
- 아이맥
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |