티스토리 뷰

ggplot 으로 그래프를 그리다보면, 아래와 같이 x/y 축 평면 사이사이 희미하게 눈금선이 그려진다. 눈금선은 major 와 minor 로 나뉘는데, 잘보면 조금 더 굵은게 major 눈금선이고, 그 사이사이가 minor 눈금선이다. 

 

조금 헷갈릴거 같아서 색을 설정해봤다. 빨간색이 major이고, 보라색이 minor 눈금선이다.

 

그러면 하나 좀 특별한 예를 가지고 그래프를 그리면서 알아보자. 국고채권 금리의 추이를 가지고 그래프를 그려보려한다. 데이터는 아래 csv 파일을 받으면 된다. 

data.csv
0.00MB

 

csv 파일 받아서, 특정 폴더에 넣어놓고, R프로그램을 읽는다. 경로는 본인 환경에 맞춰서 조정해야 한다. 

tb1 = readr::read_csv('data.csv')

# A tibble: 24 × 5
     num date    title           year  rate
   <dbl> <chr>   <chr>          <dbl> <dbl>
 1     1 2023-03 국고채권(1년)      1  3.27
 2     2 2023-03 국고채권(2년)      2  3.34
 3     3 2023-03 국고채권(3년)      3  3.27
 4     4 2023-03 국고채권(5년)      5  3.27
 5     5 2023-03 국고채권(10년)    10  3.34
 6     6 2023-03 국고채권(20년)    20  3.37
 7     7 2023-03 국고채권(30년)    30  3.34
 8     8 2023-03 국고채권(50년)    50  3.32
 9     1 2022-12 국고채권(1년)      1  3.77
10     2 2022-12 국고채권(2년)      2  3.80
# … with 14 more rows

 

각 월별로 꺾은선 그래프를 그려준다. 이때는, 본인이 눈금선을 별도로 셋팅하지 않아도, x/y 값을 읽고 자동으로 적절한 위치에 그려진다.

ggplot(tb1, aes(year, rate, colour = date)) +
  geom_line(size = 1) +
  theme_bw()

 

이게 채권금리 정보다보니, 1,2,3, 5, 10, 20, 30, 50 년물만 금리 값이 있다. 그래서 이 값마다 눈금선을 그릴려고 한다. 이런 경우, scale_x_continuous 함수의 breaks 를 셋팅하면 된다. 이 breaks 는 major 눈금선의 위치를 셋팅하게 되는데, minor 눈금선이 불필요하다면, 아래처럼 NULL 을 셋팅하면 없어진다. 본인이 조금씩 바꿔가며 실행해보면 이해가 더 쉽다.

반응형
ggplot(tb1, aes(year, rate, colour = date)) +
  geom_line(size = 1) +
  scale_x_continuous(breaks = c(1,2,3,5,10,20,30,50),
                     minor_breaks = NULL) +
  theme_bw()

 

조금 더 스타일을 넣어볼까 한다. 그냥 실선으로 하니 눈에도 잘안보여서, 점선(dotted)으로 셋팅하고, 색상도 조금 더 진하게 수정한 버전이다. 이런 스타일은 theme 로 세팅해야 하는데, panel.grid.major.x 에 선종류를 설정한다.

ggplot(tb1, aes(year, rate, colour = date)) +
  geom_line(size = 1) +
  scale_x_continuous(breaks = bk, minor_breaks = NULL) +
  theme_bw() +
  theme(panel.grid.major.x = element_line(linetype = "dotted",
                                          colour = "gray30"))

 

 

이제 남은건, 색상의 조합과 폰트 및 조금의 디테일을 조합하는 것이다. 아래와 같은 이미지를 ggplot2 로 만들 수 있다. 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함