https://plotly.com/python/choropleth-maps/ 를 참고하여 작성
영어라... 해석하기가 난감했다.
Choropleth Map은 다양한 색의 폴리곤으로 이루어진 시각화이다.
이 시각화는 수량의 변화를 공간적으로 나타내는데 효율적이다.
ploty.express 패키지에 있으며 사용 방법은
px.choropleth()
# or
go.Choropleth()
로 사용이 가능하다.
Choropleth 시각화를 사용하기 위해서는 두가지 종류의 Input이 요구된다.
1. Geometry Information
지형 정보를 입력받기 위해서는 plotly 내에 built-in된 지형정보를 입력받거나, GeoJSON
파일을 입력받는다.
여기서 GeoJSON
이란 위치정보를 갖는 점을 기반으로 체계적으로 지형을 표현하기 위해 설계된 개방형 표준 형식이다.
from urllib.request import urlopen
import json
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
counties = json.load(response)
counties["features"][0]
위 코드는 GeoJSON파일을 Load하는 코딩이다. 어떤 GeoJSON 파일이냐?
미국의 지형 정보를 가지고 있는 GeoJSON이다.
결과물을 보면
이번에는 나라별 실업 데이터를 load해보자. 이 데이터는 FIPS code에 의해서 index 되었다. FIPS 코드는 5개의 숫자로 표현된 연방 정보 처리 표준 코드이다.
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv", dtype={"fips":str})
fig = px.choropleth(df,
geojson=counties,
locations='fips',
color='unemp',
color_continuous_scale="VIridis",
range_color=(0, 12),
scope="usa",
labels={'unemp' : 'unemployment rate'})
FIPS는 위에서 말했다시피 5개의 숫자로 이루어져 있다. 이를 str 데이터 타입으로 변경해줘야 locations 파라미터에서 사용이 가능하다.
scope
는 이렇게 정의되어 있다.
the named "scope" of a map defines a sub-set of the earth's surface to draw
위 choropleth 그래프를 그려보면 미국 영토를 확인할 수 있다.
scope
를 통해 choropleth 시각화에 그릴 지도를 정의하는 것 같다. 이 scope
에는 다음과 같은 변수가 사용 가능하다.
world
, usa
, europe
, asia
, africa
, north america
, south america
이 location에는 또다른 변수가 사용 가능하다. distrcit
를 한번 써보자.
df = px.data.election()
geojson = px.data.election_geojson()