변화가 크지 않은 데이터인 경우, ggplot2
에서 선그래프를 그리고나면 약간 밋밋해보인다. 이럴때 각 좌표마다 포인트(점모양)을 넣어주면 조금은 구분이 명확한 그래프를 그릴 수 있다. ggplot2
에서는 geom_point
함수로 점모양을 그릴 수 있는데, 동그라미 모양뿐 아니라 총 26가지의 모양을 적용할 수 있다. 그래서 아래와 같이 그룹별로 라인을 나누어 그릴때, 포인트도 각기 다르게 셋팅해서 시각화를 할 수 있다.
데이터 만들기
대한민국 법원 등기정보광장에서 받아온 경매/공매 데이터를 사용해본다. 자세한 내용은 별도로 포스팅 예정이며, 데이터는 아래 레이아웃으로 되어 있다.
# A tibble: 3 × 13
crmm `2021-11` `2021-12` `2022-01` `2022-02` `2022-03` `2022-04` `2022-05` `2022-06` `2022-07` `2022-08`
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 m1_work1 2349 2238 2056 1754 2361 2320 2186 2160 2335 2340
2 m2_work1 3032 3067 2619 2431 2641 3089 2904 2674 2943 2851
3 m3_work1 369 427 530 499 1131 1121 1270 1068 1351 1007
# … with 2 more variables: 2022-09 <dbl>, 2022-10 <dbl>
데이터를 보아하니 피벗형태의 데이터라서, 아래와 같이 변경이 필요하다. 잘이해가 가지 않는다면, pivot_longer 관련 포스팅을 참고.
tb2 = tb1 %>%
inner_join(sb1, by = c("crmm" = "cd")) %>%
pivot_longer(cols = "2021-11":"2022-10") %>%
mutate(date = ymd(paste0(name, "-01")))
# A tibble: 36 × 6
crmm cdnm ord name value date
<chr> <chr> <dbl> <chr> <dbl> <date>
1 m1_work1 임의경매 2 2021-11 2349 2021-11-01
2 m1_work1 임의경매 2 2021-12 2238 2021-12-01
3 m1_work1 임의경매 2 2022-01 2056 2022-01-01
4 m1_work1 임의경매 2 2022-02 1754 2022-02-01
5 m1_work1 임의경매 2 2022-03 2361 2022-03-01
6 m1_work1 임의경매 2 2022-04 2320 2022-04-01
7 m1_work1 임의경매 2 2022-05 2186 2022-05-01
8 m1_work1 임의경매 2 2022-06 2160 2022-06-01
9 m1_work1 임의경매 2 2022-07 2335 2022-07-01
10 m1_work1 임의경매 2 2022-08 2340 2022-08-01
# … with 26 more rows
그래프 그리기
데이터를 가지고 선그래프를 간단히 그려준다.
ggplot(tb2, aes(date, value, colour = cdnm)) +
geom_line(size = 1)
그 선그래프 위에 점(point) 모양을 그려준다. size는 본인이 조정하면서 알맞은 크기로 조절하면 된다.
ggplot(tb2, aes(date, value, colour = cdnm)) +
geom_line(size = 1) +
geom_point(size = 3)
단순히 동그란 점모양 이지만, 그 모양을 변경할 수 있다. shape
값을 셋팅하면 되는데, 사실상 0~25 사이의 숫자인 필드를 이용하면 바로 그 패턴을 이용할 수 있지만, 그렇게 데이터를 셋팅하기 쉽지 않다면 그냥 문자열같은 필드로도 정의해도 된다. 이런 경우, 0~2 번 패턴이 자동적용된다. (네모, 동그라미, 세모)
ggplot(tb2, aes(date, value, colour = cdnm)) +
geom_line(size = 1) +
geom_point(aes(shape = cdnm), size = 3)
참고로, 패턴은 아래에 보듯이 0~25 까지 총 26가지 종류를 사용할 수 있다. 아래 보면 빨간색이 보이는 패턴들은 안에다가 프로그래밍으로 색을 사용자지정할 수 있는 패턴이다. fill
속성을 사용하면 된다.
그러면 저 많은 패턴중에 쓰고 싶은 패턴을 선택해서 사용하려면, scale_shape_manual
함수로 번호를 개수만큼 지정하면 된다. 나는 8~10번 패턴을 지정했다.
ggplot(tb2, aes(date, value, colour = cdnm)) +
geom_line(size = 1) +
geom_point(aes(shape = cdnm), size = 3) +
scale_shape_manual(values = c(8,9,10))
마지막으로 stroke
파라메터를 이용하여 point 모양을 굵거나 얇게 셋팅할 수 있다.
ggplot(tb2, aes(date, value, colour = cdnm)) +
geom_line(size = 0.5) +
geom_point(aes(shape = cdnm), size = 3, stroke = 1) +
scale_shape_manual(values = c(8,9,10))