안녕하세요, 이번 포스팅에서는 맵 박스를 활용하여 맵 3단계 드릴다운 (Drill-down) 하는 방법을 살펴보도록 하겠습니다.
데이터 다운로드
맵 드릴다운의 핵심은 클릭 시마다 상위 계층에서 하위 계층으로 시각화 및 분석이 가능한 부분입니다. 이번 포스팅에서는 집합 작업 (Set Action)을 활용하여 Country > State > City 순으로 Sales 및 Profit을 확인하는 대시보드를 함께 살펴보도록 하겠습니다.
How To (1) – 계산된 필드 및 집합 만들기
맵 드릴다운을 위해 여러 계산식 및 집합(Set)을 만들어 주어야 합니다.
먼저 ‘Country’ 필드에서 Create > Set을 클릭하여 ‘Selected Country Set’을 만들어주도록 하겠습니다.

다음으로 계산된 필드 만들기를 활용하여, 아래 3개 수식을 만들어주도록 하겠습니다. 이때, Number of Countries 및 Number of Selected Countries의 경우, 맨 앞과 끝에 {}을 넣어줌으로써 non-aggregate 필드로 활용되도록 만들어줍니다.

다음으로, ‘Show States’ 및 ‘Show City’ 필드를 아래 수식으로 만들어주며, 두 필드는 True or False 형태로 나오게 됩니다.
Show States 필드의 경우, 선택된 국가의 숫자보다 전체 국가의 숫자가 클 때 True가 나오도록 설정됩니다. 한편 Show City 필드의 경우, ‘Conditional State Set’ 필드 Max 값을 가져오면서 동시에 적어도 하나를 초과하는 State가 선택되어야 함을 보여줍니다.

위에서 언급된 ‘Conditional State Set’은 아래 수식 및 집합을 통해 새롭게 만들어줄 수 있습니다. Conditional State 필드를 활용하여 ‘Conditional State Set’이라는 집합을 만들어줍니다.

이때, Conditional State의 지리적 역할은 ‘State’로 선택해줍니다.

마지막으로 아래 두 필드만 만들어주면 됩니다. 앞서 만든 필드들을 활용하여 수식이 구성되며, ‘Filter Set’ 필드는 필터 선반 위에 올려두고 ‘True’을 선택해줍니다.

이때, Conditional Geography 필드는 아래와 같이 지리적 역할을 ‘City’로 선택해줍니다.

지금까지 만든 필드들을 마크 > 세부정보에 올려놓으면, 아래 이미지와 같이 대략적인 정보를 확인할 수 있습니다. 아직 동작 작업을 시행하지 않았기에 일반 맵 정보처럼 보이지만, 맵 드릴다운 준비 기초작업이 모두 완료되었습니다!

여기서 잠깐! 맵 박스 (Map Box) 활용하기
태블로 데스크탑에서 맵 관련 여러 기능을 활용할 수 있습니다. 메뉴 바에서 맵 > 맵 서식을 통해 배경색을 변경하거나 투명도를 조절할 수 있습니다. 또한, 맵 계층에서 지형, 해안선 등을 체크박스 해제하여 맵에 노출하지 않을 수도 있습니다. 다만 맵에 표현된 대륙 / 바다 색상을 다르게 한다든지, 또는 각각의 지명 레이블을 변경하지 못하는 단점이 있습니다.
위 단점을 보완함과 동시에, 조금 더 다채로운 스타일로 맵 배경을 만들 수 있는 방법이 있습니다. 바로 맵 박스 홈페이지 (https://www.mapbox.com/)에서 직접 만들 수 있습니다. 회원가입 및 로그인 이후, 오른쪽 상단 계정 아이콘 클릭 후 ‘Studio’를 클릭해줍니다.

Studio 페이지에서 중앙 상단에 있는 ‘New Style’ 클릭 후, 여러 템플릿 중에 ‘Basic’ 선택 후 ‘Customize Basic’을 클릭하도록 하겠습니다.

로딩이 완료되면 구글맵과 유사한 형태의 맵이 나오게 됩니다. 오른쪽 상단에 있는 Zoom-in / Zoom-out 버튼을 클릭하거나 마우스 휠을 활용하여 확대/축소하여 맵을 볼 수 있습니다.
색상을 변경해주고 싶은 부분을 클릭해주면 팝업 박스가 나옵니다. Colors 부분에서 원하는 색상을 클릭하면, 해당 영역이 선택한 색상으로 변경됩니다.

맵을 확대하면 공원 또는 도로 색상 또한 지정할 수 있는데, 대륙 부분은 모두 흰색으로 변경해주도록 하겠습니다. 아래와 같이 공원 부분 클릭 > Colors > Greenspace를 White로 변경해줍니다.

맵 박스에서는 지명 레이블 서식 또한 변경해줄 수 있습니다. Country 이름인 ‘United Kingdom’을 클릭하면, Layers 탭에서 T자 모양으로 된 ‘country-label’을 클릭해줍니다.

아래 이미지 네모박스에서 보시듯, 레이블 관련 여러 서식을 직접 변경해줄 수 있습니다. 우선 Text field 부분에서 수정이 가능하도록 ‘Override’ 버튼을 클릭하여 잠금을 해제합니다. ‘name_en’으로 된 부분을 ‘name_ko’로 변경하면, Country 지명이 모두 한국어로 변환됩니다. Country 외에도 State / City 등도 동일한 방법으로 한국어로 변경해줄 수 있습니다.

레이블 Font 또한 변경해줄 수 있습니다. 위 이미지에서 ‘Font’ 부분을 클릭하거나 또는 아래 이미지에서와 같이, Components 탭에서 Typography 부분을 변경해주면 됩니다.

원하는 방식으로 맵 서식을 모두 변경하였다면, 오른쪽 상단에 있는 ‘Publish’ 버튼을 클릭합니다. ‘Publish as new’를 클릭하면, 아래 귀여운 아이콘과 함께 완료메시지가 나오게 됩니다.

이후 왼쪽 상단에 ‘Styles’ 버튼을 클릭하면, 아래와 같이 만든 맵 styles 리스트를 확인하실 수 있습니다. 가장 최근에 만든 맵의 오른쪽 햄버거 바 메뉴를 클릭하여, ‘Details’를 눌러주도록 하겠습니다.

Details 페이지에서 오른쪽에 ‘Share’ 버튼을 클릭하면 아래 이미지가 나옵니다. 여기서 Share Style > Preview only 부분에서 링크를 복사합니다.

이후 태블로 워크북으로 돌아와서, 맵 > 배경 맵 > 맵 박스 추가 버튼을 눌러줍니다. Style Name을 임의로 입력하고, URL 부분에 Copy 했던 링크를 넣어줍니다. 이후 확인!

맵 > 배경 맵 부분을 보시면 맵 박스에서 추가된 스타일을 확인할 수 있습니다. White_Navy_Map 이름을 클릭하면 배경 맵이 태블로 워크시트 안에서 표현되며, 태블로에서 제공하는 맵 서식 적용 또한 가능합니다.

맵 박스 스타일을 추후에도 반복적으로 사용하고 싶다면, 맵 > 배경 맵 > 맵 관리를 클릭한 후, 해당 스타일에 마우스 커서를 올려줍니다. 이후 내보내기(export)를 클릭하여, 내 Tableau 리포지토리 > 맵 원본에 해당 스타일을 저장해주면, 추후에도 필요할때 불러와서 사용할 수 있습니다.

위 방법들을 참고하여, 나만의 배경 맵을 직접 만들어보시기를 권유드립니다!
How to (2) – 계산된 필드 및 집합 만들기
다시 맵 드릴다운 태블로 워크북으로 돌아오도록 하겠습니다. Profit Ratio (=sum(profit)/sum(sales)) 및 Sales 필드를 마크 > 색상 및 크기로 불러오고, 도구설명 부분을 아래와 같이 깔끔하게 정리해주도록 하겠습니다.

이후 새로운 워크시트를 열어서, “<< Reset to Country” 이름으로 텍스트를 구성해줍니다. 이때, Tier Label 필드는 아래와 같은 수식으로 만들어줍니다. 필터 선반에 올린 후, Custom value list로 설정해줍니다.
if [Show City] then “City”
ELSEIF [Show States] then “State”
else “Country”
END

위와 마찬가지 방법으로, “< Reset to State” 워크시트도 만들어줍니다.
이후 처음에 만들었던 Map이 있는 워크시트를 대시보드로 불러옵니다. 메뉴 대시보드 > 동작 (Actions)을 클릭하여, 몇 가지 집합 값 변경작업을 만들어줍니다.
우선 아래 2가지는 각각 Conditional State Set 및 Selected Country Set 선택에 따라 집합 값이 변경되도록 설정됩니다.

다음으로, 특정 Country 또는 State를 선택하여 드릴다운 되었을 때, 그 이전 단계로 돌아올 수 있도록 아래와 같이 집합 값 설정을 구성해줍니다.

<< Reset to County 및 < Reset to State 워크시트를 대시보드 왼쪽 상단으로 옮겨두고, 매개변수 및 색상 범례 또한 추가해두면, 대시보드 완성!
Country > State > City 순으로 드릴다운 및 Reset 되는 과정을 아래 영상을 통해 확인하실 수 있습니다.
마무리하며
드릴다운 기능은 시각화 및 분석 시 굉장히 강력한 도구가 될 수 있습니다. 원 클릭만으로도, 상위 계층에서 하위 계층으로 데이터를 확인하거나 또는 General View에서 Specific view로 보는 데 매우 유용하게 활용될 수 있기 때문입니다.
이번 포스팅에서는 맵을 통해 Country > State > City 순으로 분석하는 방향성을 보여드렸습니다만, 맵 외에 테이블 또는 막대차트 등 다른 방식으로도 시각화 및 분석이 가능합니다. 아래 태블로위키 포스팅을 통해 막대차트 기반의 드릴다운 방법 또한 확인하실 수 있습니다.
맵 박스를 활용한 맵 드릴다운 대시보드를 통해, 더욱 효과적이고 강력한 시각화 및 분석을 해보시기를 권유드립니다!
2 thoughts on “태블로 맵 드릴다운 만들기 (Feat. 맵 박스 활용)”
정말 유용한 기능입니다. 공유 감사합니다!
본문 내용 중 [ 한편 Show City 필드의 경우, ‘Conditional State Set’ 필드 Max 값을….] 여기에서
Conditional State Set 필드가 raw데이터 내의 자료인지요? 관련 자료 내에서 찾을수 없으며, 계산된 필드도 아니어서
다음 진행이 되질 않네요~ ^^
확인 부탁드립니다~~~ 감사합니다.