본문 바로가기
  • plotly로 바로쓰는 동적시각화 in R & 파이썬
데이터 시각화

21년 고등교육기관 정보 요약 - gt 패키지를 이용한 데이터 강조 in R

by 아참형인간 2021. 12. 10.
data_color.knit

gt 패키지로 데이터 강조하기

앞의 2번의 포스트에서 gt 패키지를 사용하여 표를 예쁘게(?) 꾸미는 방법에 대해 설명했다. 앞에서 언급했지만 표를 꾸미는 것은 워드프로세스가 더 편할 수도 있다. 하지만 이번 포스트에서는 워드프로세서에서는 불가능한 기능을 설명하겠다.

data_color()를 사용한 데이터 강조

표를 보다보면 최대값이나 최소값을 강조할 필요가 있다. 또 표에 포함된 숫자의 크기에 따라 글자색이나 배경색을 표기해주면 표를 읽기가 더 쉬워진다. gt 패키지에서는 이 기능을 지원하기 위해 data_color() 함수를 제공한다. 이 함수를 사용하여 열의 숫자에 따라 색을 달리 표현할 수 있다.

data_color()의 용법은 다음과 같다.

data_color(data, columns, colors, alpha = NULL, apply_to = c("fill", "text"), autocolor_text = TRUE)

  • data : 표 그리기에 사용할 gt 객체

  • columns : 색 변경을 적용해야하는 열

  • color : 열의 색 변경에 사용할 색 벡터로써 scales 패키지의 색상 매핑 함수나 열의 개별 값(수준)에 매칭될 색 벡터

  • alpha : 옵션 값으로 열의 색 변경에 적용되는 투명도 값

  • apply_to : 열의 색을 배경색(fill)에 적용할지 글자색(text)에 적용할 지를 지정

  • autocolor_text : 셀의 배경색에 따라 글자색을 변경하는 옵션 지정(기본값은 TRUE)

위의 data_color() 용법에서 color 매개변수에는 scales 패키지의 색상 패핑 함수를 사용할 수 있다. scales 패키지의 색상 매핑 함수는 scales::col_quantile(), scales::col_bin(), scales::col_numeric(), scales::col_factor() 를 사용할 수 있다.

  • scales::col_numeric() : 선형적 변환에 의해 데이터 값을 색상으로 매핑
  • scales::col_quantile() : 데이터 값을 지정된 분위(기본값은 4)에 따라 색상으로 매핑
  • scales::col_bin() : 데이터 값을 기반으로 구간을 나누고(bins) 이에 따라 색상을 매핑
  • scales::col_factor() : 매핑될 데이터가 팩터인 경우 팩터값에 따라 색상을 매핑

scales 패키지의 색상 매핑 함수는 적절한 색상 팔레트를 정의해야 한다. 하지만 사용자가 색상 팔레트를 일일이 정의하는 것은 쉽지 않은 일이다. 따라서 R에서 제공하는 다양한 팔레트를 이용하는 것이 효율적인데 팔레트 설정을 위해 많이 사용되는 패키지가 paletteer 패키지이다. paletteer 패키지에서 제공하는 paletteer_d()는 R에서 제공하는 패키지에 포함되어 있는 팔레트 정보를 벡터로 추출해오는 함수이다. 따라서 이 함수를 사용하면 다양한 패키지에서 제공하는 팔레트를 표 색상을 설정하는데 사용할 수 있다. 다만 이 함수를 사용하는데 하나 주의해야 할 것이 결과값이 수치형 벡터이기 때문에 이를 문자형 벡터로 변환시켜 주는 과정이 필요하다는 점이다. paletteer::paletteer_d()를 사용하여 데이터 강조색을 설정하는 코드는 다음과 같다.

gt.table15  |>
  data_color(
    columns = c(3:8),
    colors = scales::col_numeric(
      palette = paletteer::paletteer_d(
        palette = "ggsci::blue_material"
      ) |> as.character(),
      domain = NULL
    )
  ) |>
  data_color(
    columns = c(9:14),
    colors = scales::col_numeric(
      palette = paletteer::paletteer_d(
        palette = "ggsci::red_material"
      ) |> as.character(),
      domain = NULL
    )
  )
고등교육기관 데이터
2021년 전체 고등교육기관 대상
합계 평균
학과수 지원자 입학자 재적생 재학생 휴학생 학과수 지원자 입학자 재적생 재학생 휴학생
전문대학과정
전문대학(2년제) 2,546 473,154 70,200 238,266 162,729 75,386 1.4 257.8 38.3 129.8 88.7 41.1
전문대학(3년제) 3,095 603,197 87,333 304,435 213,105 91,162 1.7 326.9 47.3 165.0 115.5 49.4
전문대학(4년제) 317 63,559 9,174 33,340 24,242 9,077 1.1 227.8 32.9 119.5 86.9 32.5
기능대학 263 19,102 7,565 23,910 14,860 9,050 1.5 107.9 42.7 135.1 84.0 51.1
합계 6,221 1,159,012 174,272 599,951 414,936 184,675 5.7 920.5 161.2 549.4 375.0 174.2
평균값 1,555 289,753 43,568 149,988 103,734 46,169 1.4 230.1 40.3 137.4 93.8 43.5
대학과정
대학교 12,028 2,635,154 329,306 1,938,254 1,415,162 504,165 1.5 326.3 40.8 240.0 175.3 62.4
교육대학 140 15,805 3,864 15,409 15,045 364 2.3 263.4 64.4 256.8 250.8 6.1
산업대학 251 22,128 2,379 14,539 11,076 3,374 1.0 90.3 9.7 59.3 45.2 13.8
사이버대학(대학) 357 51,840 34,279 135,155 119,995 15,160 0.8 120.8 79.9 315.0 279.7 35.3
합계 12,776 2,724,927 369,828 2,103,357 1,561,278 523,063 5.7 800.9 194.8 871.2 750.9 117.6
평균값 3,194 681,232 92,457 525,839 390,320 130,766 1.4 200.2 48.7 217.8 187.7 29.4
대학원과정
일반대학원 10,076 121,226 69,928 161,987 143,965 18,022 2.7 31.9 18.4 42.6 37.9 4.7
특수대학원 4,351 84,377 45,448 124,912 107,537 17,375 1.7 32.1 17.3 47.5 40.9 6.6
전문대학원 1,088 39,141 15,556 40,516 36,108 4,408 1.5 55.5 22.1 57.5 51.2 6.3
합계 15,515 244,744 130,932 327,415 287,610 39,805 5.8 119.5 57.7 147.6 130.0 17.6
평균값 5,172 81,581 43,644 109,138 95,870 13,268 1.9 39.8 19.2 49.2 43.3 5.9
합계 34,512 4,128,683 675,032 3,030,723 2,263,824 747,543 17.2 1,840.9 413.8 1,568.3 1,255.9 309.4
평균값 3,137 375,335 61,367 275,520 205,802 67,958 1.6 167.4 37.6 142.6 114.2 28.1

댓글