Tableau Public | 지도 위에 시각화 해보기 #1 (공간파일, 텍스트파일 연결하기/ .shp .csv 데이터 다루기)

BLO·2022년 9월 25일
2
post-thumbnail

얼레벌레 Tableau 입문하기👀

진행중인 플젝 시각화 과정에서
지도 위에 서울시 동 경계선을 긋고,
노후주택 수를 count한 데이터셋을 가져와서,
동별로 count 수에 따라 단계별로 색칠하는 것
이 필요했다.

처음에 말로만 들으니 "간단한 건가?" 싶었었다.

하지만 막상 파이썬으로 구현하려니
동 경계 데이터가 json 파일이라 핸들링이 미숙했고,
MarkerCluster로 노후주택 수를 표현하자니
숫자를 세는 경계가 심히 자유분방했다.

^^

그래서 이것저것 다른 방식을 생각해보고 있었는데,
최근 두 번 정도 수강한 태블로 강의에서
.shp 파일도 다룰 수 있다는 걸 언뜻 들은 기억이 났다.

그래서 무작정 Tableau 로 시도해봤다.
(*참고로 Public 버전이다.)

SHP 데이터 가져오기🌏

http://www.gisdeveloper.co.kr/?p=2332

일단 나는 이 링크에서 대한민국 읍면동 데이터를 담은 .shp 파일을 다운받았다.

처음에는 .shp 확장자 파일만 있으면 되지 않을까 해서 따로 빼두었는데,
왜인지는 모르겠으나 이 파일들이 한 곳에 있어야 정상적으로 데이터가 불러와지더라.

"데이터 원본과 통신하는 동안 오류가 발생했습니다." 오류가 뜬다면 확인 필수!

워크시트로 가져오기

일단 이 공간파일만 불러오고 워크시트로 넘어가서,
테이블 필드의 기하도형을 더블클릭 한다.

그러면 행 선반에 위도, 열 선반에 경도가 자동으로 들어가고
우리에게 익숙한 지도의 모양새가 나온다.

하지만 비주얼이 딱히 마음에 들지 않기에,

색상 마크카드를 눌러서 투명도라든지 색상이라든지 손 대준다.

그리고 동의 이름을 지도상에 표시하기 위해서
shp 파일에 들어있는 Eng Nm 컬럼을 더블클릭 한다.

원래는 한글 이름을 붙이려고 했으나,
한글 폰트가 깨져버리는 바람에 영문 이름으로 진행했다.

그래서 한글 동 이름과 노후주택의 수가 담겨있는 텍스트 파일 역시
영문 동 이름 컬럼을 넣어주는 고생을 조금 해야했다.

CSV 파일과 연결하기👉👈

다시 데이터 원본 단계로 돌아가서
수정한 csv 파일을 추가 연결 해주었다.

파일끼리 연결해주기 위해
파일 필드에 있는 파일을 옆 빈공간으로 드래그 앤 드롭 한다.
그리고 아래쪽에서 공통 필드를 지정하여 두 파일을 엮어준다.

다시 워크시트 단계로 돌아가면,

테이블이 하나 더 생겨난 것을 확인할 수 있다.

이제 csv 파일의 "count"컬럼을 색상 마크카드에 끌어다 두면?

두 가지 문제점을 발견할 수 있다.

문제 1. 색깔이 너무 애매하다.
문제 2. 필요한 구만 색칠되었으면 좋겠다.

COUNT 값 지도에 "잘" 시각화하기

문제 1의 해결방안은 가장 간단했지만, 가장 알아차리기 어려웠다.

먼저 색상 마크카드에서 색상 편집에 들어가 좀 더 극단적인 색으로 바꿔주었다.

의외로 가장 큰 복병은 아까 보기 싫다고 손 댔던 불투명도 였다.
이것 때문에 아무리 극단적인 색으로 색상을 편집해도?
결과물이 밍숭맹숭 했었다.

불투명도100%로 바꿔주니 이제야 확실히 색상 단계가 보인다.

이어서 문제 2를 해결할 때 나는 엄청난 노가다를 했지만...
상당히 쉬운 필터링 방법을 발견했다.

일단 필터 필드에 Eng Nm 컬럼을 가져다두고,
드롭다운 > 필터 편집에 들어간다.

나는 목록에서 선택 하려다가 눈알이 빠질 뻔 했는데
사용자 지정 값 목록에 영문 동이름을 냅다 넣으면 되는 거였다.
^^;;;;
물론 영문 치환이 정확히 되었을 때만 정확하게 나온다는 단점은 있다.

그러면 내가 원하는 동만 색칠되어서 결과가 나온다.
표시되는 동 수가 적어졌기 때문에,
Eng Nm 컬럼을 레이블로 붙여도 비교적 깔끔하다.

커서를 특정 동 위에 올리면, count 값도 보여준다.

지금까지의 문제를 꼽자면,

다른 지역이지만 동 이름이 완전히 동일한
신사동, 갈현동, 구산동이 함께 지도에 표시된다는 점이다.

이건 shp 파일 자체에서 신사동(1) 신사동(2) 이런 식으로 구분되어있어야
지도 상에서 분리가 가능할 것 같은데,
그건 내 영역이 아닌 것 같아 흐린 눈 하고 있다.

이제 응급실 데이터를 원으로 표현하는 방법 알아봐야겠다...

태블로 강의 몇 번 들은 게 다인데,
역시 야생에 던져져야 빨리 성장하는 것 같다.
내가 이런 거까지 하고 있을 줄은 몰랐어.

0개의 댓글