Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Plotly를 활용한 지리적 데이터 시각화 완벽 가이드

파이썬(Python)은 지리 데이터와 그래프 데이터를 다루기 위한 다양한 라이브러리를 제공합니다. 그중 Plotly는 지리적 그래프를 그리는 데 활용되는 대표적인 라이브러리로, 무료 오픈소스로 공개되어 있어 누구나 자유롭게 사용할 수 있습니다.

Plotly는 선 그래프(Line Chart), 수평 막대그래프(Horizontal Bar Chart), 막대그래프(Bar Chart), 대시보드(Dashboard), 산점도(Scatter Plot), 버블 차트(Bubble Chart), 원형 차트(Pie Chart) 등 매우 다양한 종류의 그래프를 손쉽게 그릴 수 있도록 도와줍니다.

Choropleth 지도 그리기 예제

아래 코드는 Plotly의 choropleth 타입을 사용하여 미국 주(State)별 데이터를 지도 위에 색상으로 표현하는 예제입니다.

# 중요한 파이썬 지리 관련 라이브러리를 임포트합니다.
import plotly.plotly as py
import plotly.graph_objs as go
import pandas as pd
# Plotly를 오프라인에서 사용하기 위해 반드시 활성화해야 합니다.
from plotly.offline import download_plotlyjs, init_notebook_mode, iplot, plot
# 연결 설정
init_notebook_mode()
# type을 choropleth로 지정하여
# 지리적 플롯을 그립니다.
data = dict(type = 'choropleth',
# 위치: 알래스카, 아메리칸사모아, 애리조나 등
locations = ['AK', 'AS', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FM', 'FL', 'GA', 'GU', 'HI', 'ID', 'IL','IN','IA', 'KS', 'KY'],
# 미국의 주들
locationmode = 'USA-states',
# 필요에 따라 색상 스케일(colorscale)을 지정할 수 있습니다.
colorscale = 'Portland',
# text에는 원하는 어떤 내용이든 넣을 수 있습니다.
text = ['state 1', 'state 2', 'state 3', 'state 4', 'state 5','state 6', 'state 7', 'state 8', 'state 9', 'state 10','state 11', 'state 12', 'state 13', 'state 14', 'state 15','state 16', 'state 17', 'state 18', 'state 19', 'state 20'],
z = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0],
colorbar = {'title': 'USA-states'})
layout = dict(geo ={'scope': 'usa'})
# data 딕셔너리를 리스트 형태로 전달합니다.
choromap = go.Figure(data = [data], layout = layout)
# 그래프를 그립니다.
iplot(choromap)

실행 결과

Python Plotly를 활용한 지리적 데이터 시각화 완벽 가이드

위와 같은 플롯을 활용하면, 목적에 따라 데이터를 다양한 방식으로 시각화할 수 있습니다. 예를 들어 인도의 29개 주를 각 주를 집권하고 있는 정당에 따라 다른 색으로 표현하거나, 채식주의자 비율이 높은 지역과 육류 소비가 많은 지역을 구분해 표시하는 것도 가능합니다. 이처럼 상상할 수 있는 어떤 기준이든 지도에 반영할 수 있습니다.

Plotly는 데이터를 누구나 쉽게 이해할 수 있는 그래프 형태로 표현할 수 있도록 강력하면서도 인터랙티브한 기능을 제공하는 라이브러리입니다. 마우스를 올려 세부 값을 확인하거나 확대·축소할 수 있는 등 정적인 이미지로는 얻기 어려운 뛰어난 사용자 경험을 제공한다는 점에서, 지리 데이터 시각화에 특히 유용하게 활용됩니다.