시각화/파이썬

Python으로 만드는 인포그래픽 :: 공간시각화 :: 공간시각화 응용 #1 :: 서울시 동별 코로플레스

비주얼라이즈 2014. 3. 13. 09:56


Python으로 만드는 시각화 :: 공간시각화 응용

서울의 구별 코로플레스에 이어

'읍면동'버전 코로플레스를 제작해보았습니다!



우선 지난번에 만들었던 지도시각화는

commons.wikimedia.org에서 다운로드한

서울의 시군구 svg를 활용하여 제작하였습니다.




시군구 지도는 25개의 구별로 확인 할 수있지만

더욱 세밀한 정보, 즉 [읍면동]의 정보를 얻지는 못하게 됩니다.



그래서 오늘 살펴볼 것은

서울시 동별 데이터를 바탕으로

보다 '세밀한' 지도시각화입니다.



먼저 오늘 사용할 데이터는

서울공공데이터포털에서 다운로드한 

[서울시 동별 의료기관수 - 치과의원]입니다.



seoul_dentist.txt

서울시 동별 치과의원 - 코드로 정리



다운로드 받아 열어보면 이렇게

메모장에 데이터가 정리되어있습니다.


첫 번째 열[a1,a2...]는 각 동을 구분하는 코드인데요

svg파일과 연결하기위해 임의로 지정해 두었습니다.

(아래에서 한번 더 설명하겠습니다^^)


두 번째 열[28,4...]는 치과의원의 수입니다.



그러면 이제 svg파일을 살펴보겠습니다.


seoul_edit.zip

.svg파일로 올리니 바로 사진으로 나오는 관계로

부득이하게 zip파일로 압축하였습니다




다운을 받으시고 에디터로 열어보시면




이런 형태를 확인할 수 있습니다.


사진 속 [빨간네모박스]의 'id'는

서울시 동별 코드 순서[내림차순]를 의미하며

서울시 동의 숫자만큼, a1부터 a423까지 있습니다.



잘이해가 안간다면

쉽게, 아까 다운받은 텍스트파일을 살펴볼까요



여기에 다시 [a1,a2...]시리즈가 보이시지요?

txt파일의 a1과, svg파일의 a1을 연결시키는 것입니다.


정리하면~

python이 txt파일의 a1을 읽은 뒤

svg파일의 a1원에 색을 채워넣도록 하는 겁니다.



그럼 python으로 작업을 시작해볼까요?



그럼 python으로 작업을 시작해볼까요?

뷰티풀수프를 부르고나서

seoul_dentist파일을 읽은 뒤,

svg파일까지 읽음으로서 준비를 준비단계를 마칩니다.




세부적인 설정사항입니다.



paths = soup.findAll('g')코드는

svg안의 g패스를 모두 찾으라는 명령어입니다.


g_style에서는 svg의 세부적인

 design설정을해줄 수 있습니다.



이제 이 부분에서는

치과의원 데이터값마다 다른 색을 부여해줍니다.


이 값은 데이터 파일마다 

적용하는 방식이 다르겠지요?


저는 [0, 5, 20..]이렇게 15단위로 

지정해봤습니다.



여기까지하고 python을 RUN해줍니다.



그다음 cmd로 방금 run해줬던 py[python파일형식]을

svg형식으로 만들어줍니다.


이제 디렉토리로 돌아가서

 저장되어있는 svg파일을 열기만하면 끝!


* cmd에서 파이썬 폴더 경로로 바꾸어 주어야 합니다. 

방법은 cd "파이썬폴더위치입력" 입니다.


예시)cd "c:\Python27"





완성된 모습입니다.

이제 그래픽프로그램을 이용하여

마무리작업을 해주면 됩니다.




저는 일러스트를 이용합니다^^;




라벨을 추가하여 마무리를 해봤습니다^^

수고하셨습니다~