1. 학습
  2. /
  3. 강의
  4. /
  5. R로 지리공간 데이터 시각화하기

Connected

연습 문제

정성적(qualitative) 예시

마지막으로 범주형 변수 예시를 살펴보겠습니다. land_cover 래스터에는 지표면에 대한 그리드 기반 범주화가 담겨 있어요. 먼저 land_cover를 출력해 살펴보세요:

land_cover

values는 숫자형이지만, 이 숫자를 범주에 매핑하는 attributes가 있다는 점을 확인할 수 있습니다(요인 factor가 작동하는 방식과 같습니다).

범주형 변수의 색을 선택하는 방식은 그래픽의 목적에 크게 좌우됩니다. 모든 범주가 대략 비슷한 시각적 비중을 갖도록 하려면, 서로 다른 색상(hue)을 사용하되 채도(chroma, 선명도의 척도)와 명도(lightness)를 같게 맞추는 방법이 있습니다(ggplot2의 이산형 색상 스케일 기본값이며 hcl() 함수로 생성할 수 있습니다).

RColorBrewer의 정성적 팔레트는 시각적 비중의 균형과 색상 식별의 용이함을 균형 있게 제공합니다. 그중 "paired"와 "accent" 스킴은 예외적으로, 서로 다른 명도의 색을 짝지어 제공하거나 더 강렬한 색을 포함해 특정 범주를 강조하는 데 사용할 수 있습니다.

이 데이터의 경우 숲은 초록, 물은 파랑처럼 직관적인 색을 선택하는 편이 더 자연스러울 수 있습니다. 어떤 방식이든 적절한 색을 설정하는 방법은 해당 tm_*** 레이어의 palette 인수에 색상 벡터를 전달하면 됩니다.

지침

100 XP
  • tm_shape()와 tm_raster()를 조합해 land_cover 래스터를 그리세요. 기본적으로 tmap은 RColorBrewer의 정성적 팔레트 "Set3"를 사용합니다.
  • ggplot2에서 사용하는 팔레트를 모방한 hcl_cols 코드를 살펴본 뒤, tm_raster()의 palette 인수에 hcl_cols를 전달하여 land_cover 래스터를 다시 그리세요.
  • land_cover에 대해 levels()를 호출해 범주를 확인하세요.
  • 이번에는 팔레트로 intuitive_cols를 사용하고, tm_legend() 레이어를 추가하되 position = c("left", "bottom") 인수를 지정하세요.