자료 매번 검색하기 귀찮아서 만든 블로그
GGPLOT2 - scale_x_date 사용하기 (Time series x축 다루기) 본문
Time series 그림을 그릴 때, 날짜 표기형식이나 날짜의 범위, 날짜 간격 등을 정할 때 사용한다
library(ggplot2)
date <- seq(as.Date('2021-12-04'), as.Date('2022-12-03'), 'days')
values<-runif(365)
df <-data.frame(date=date, values=values)
ggplot(df)+
geom_line(aes(date, values))
아래와 같은 그림이 있다고 할 때,
1. 날짜 표시 간격을 지정
2. 날짜 표시 형식을 지정
3. 날짜 범위 지정
을 위해 scale_x_date 를 사용한다
ggplot(df)+
geom_line(aes(date, values))+
scale_x_date(date_breaks = "1 months", #표시할 날짜 간격 지정
date_labels = "%y-%m-%d", #표시 형식 지정
limits = as.Date(c("2022-1-01", "2022-11-1")) #날짜 범위 지정
)
※ 그림이 너무 작거나, 날짜 간격이 조밀한 경우 텍스트가 겹치는 현상이 발생하는데,
이런 경우에는 폭을 넓히거나, 텍스트를 회전시키는 방법을 선택했다
ggplot(df)+
geom_line(aes(date, values))+
scale_x_date(date_breaks = "1 months", #표시할 날짜 간격 지정
date_labels = "%y-%m-%d", #표시 형식 지정
limits = as.Date(c("2022-1-01", "2022-11-1")) #날짜 범위 지정
)+
theme(axis.text.x = element_text(angle=90))
날짜 라벨과 간격을 수동으로 조절하고 싶은 경우, breaks와 labels를 사용한다
예를 들어서 1월, 5월, 11월만 축에 표현하고 싶은 경우, 아래와 같이 작성한다.
ggplot(df)+
geom_line(aes(date, values))+
scale_x_date(breaks=c(as.Date("2022-01-01"),
as.Date("2022-05-01"),
as.Date("2022-11-01")),
labels=c("January", "May", "November"))
요렇게
'R' 카테고리의 다른 글
GGPLOT2 - geom_segment 사용하기 (그림에서 화살표 넣기) (0) | 2021.12.05 |
---|---|
GGPLOT2 - grid.arrange 사용하기 (여러 그림을 한 그림에 담기) (0) | 2021.12.05 |
GGPLOT2 - geom_ribbon 사용하기 (그래프 사이의 색 채우기) (0) | 2021.12.04 |
GGPLOT2 - geom_rect 사용하기 (그림에 사각형 넣기) (0) | 2021.12.04 |
GGPLOT2 - annotate 사용하기 (그림에 텍스트 넣기) (0) | 2021.12.04 |