일본 소멸위험지수를 계산하여 일본 지도 시각화를 하겠습니다.
소멸위험지수는 한 지역의 20~39세 여성 인구 수를 해당 지역의 65세 이상 고령 인구 수로 나눈 값을 의미합니다.
데이터를 얻기 위해서 먼저 일본 통계사이트에서 도도부현 기준 인구데이터를 가져오겠습니다.
政府統計の総合窓口
政府統計の総合窓口(e-Stat)は各府省等が公表する統計データを一つにまとめ、統計データを検索したり、地図上に表示できるなど、統計を利用する上で、たくさんの便利な機能を
www.e-stat.go.jp
일본 도도부현 시각화
pandas 라이브러리를 불러온 다음에 일본의 도도부현의 데이터와 소멸위험지수를 확인했습니다.
import pandas as pd
df = pd.read_csv('일본소멸위험지수.csv',encoding = 'cp949')
df.head()
도도부현 | 소멸위험지수 | |
---|---|---|
0 | 01000_ 홋카이도 | 0.313406 |
1 | 02000_아오모리현 | 0.264563 |
2 | 03000_ 이와테 현 | 0.267990 |
3 | 04000_ 미야기 현 | 0.393468 |
4 | 05000_ 아키타 현 | 0.212885 |
각 도도부현의 index를 일본어로 맵핑 시켜줍니다.
df['도도부현'] = df['도도부현'].map({
'01000_ 홋카이도': '北海道',
'02000_아오모리현': '青森県',
'03000_ 이와테 현': '岩手県',
'04000_ 미야기 현': '宮城県',
'05000_ 아키타 현': '秋田県',
'06000_ 야마가타 현': '山形県',
'07000_ 후쿠시마 현': '福島県',
'08000_ 이바라키 현': '茨城県',
'09000_ 토치 기현': '栃木県',
'10000_ 군마현': '群馬県',
'11000_ 사이타마 현': '埼玉県',
'12000_ 치바현': '千葉県',
'13000_ 도쿄도': '東京都',
'14000_ 가나가와 현': '神奈川県',
'15000_ 니가타 현': '新潟県',
'16000_ 도야마 현': '富山県',
'17000_ 이시카와 현': '石川県',
'18000_ 후쿠이 현': '福井県',
'19000_ 야마나시 현': '山梨県',
'20000_ 나가노 현': '長野県',
'21000_ 기후현': '岐阜県',
'22000_ 시즈오카 현': '静岡県',
'23000_ 아이 치현': '愛知県',
'24000_ 미에현': '三重県',
'25000_ 시가현': '滋賀県',
'26000_ 교토 부': '京都府',
'27000_ 오사카 부': '大阪府',
'28000_ 효고현': '兵庫県',
'29000_ 나라현': '奈良県',
'30000_ 와카야마 현': '和歌山県',
'31000_ 돗토리 현': '鳥取県',
'32000_ 시마네 현': '島根県',
'33000_ 오카야마 현': '岡山県',
'34000_ 히로시마 현': '広島県',
'35000_ 야마구치 현': '山口県',
'36000_ 도쿠시마 현': '徳島県',
'37000_ 카가와 현': '香川県',
'38000_ 에히메 현': '愛媛県',
'39000_ 고치 현': '高知県',
'40000_ 후쿠오카 현': '福岡県',
'41000_ 사가현': '佐賀県',
'42000_ 나가사키 현': '長崎県',
'43000_ 구마모토 현': '熊本県',
'44000_ 오이타 현': '大分県',
'45000_ 미야자키 현': '宮崎県',
'46000_ 가고시마 현': '鹿児島県',
'47000_ 오키나와': '沖縄県'
})
df = df.set_index('도도부현')
df.head()
소멸위험지수 | |
---|---|
도도부현 | |
北海道 | 0.313406 |
青森県 | 0.264563 |
岩手県 | 0.267990 |
宮城県 | 0.393468 |
秋田県 | 0.212885 |
japanmap 라이브러리를 이용하여 간단한 시각화 작업을 하려고합니다.
japanmap의 47번째 인덱스는 오키나와로 df의 인덱스가 알맞게 구성되어있습니다.
from japanmap import pref_names
pref_names [ 47 ]
'沖縄県'
cmap = plt.get_cmap('Reds')
norm = plt.Normalize(vmin=df.소멸위험지수.min(), vmax=df.소멸위험지수.max())
fcol = lambda x: '#' + bytes(cmap(norm(x), bytes=True)[:3]).hex()
plt.subplots (figsize = ( 10 , 10 ))
plt.colorbar(plt.cm.ScalarMappable(norm, cmap))
plt.imshow(picture(df.소멸위험지수.apply(fcol)));
또한 원하는 도도부현만 따로 시각화를 할 수 있고 색상도 정할 수 있습니다.
plt . imshow ( picture ({ '北海道' : 'blue' }));
plt . imshow ( picture ({ 47 : 'blue' }));
'BI > Python' 카테고리의 다른 글
[python][plotly] geojson을 이용한 지도그리기 (4) (0) | 2021.01.13 |
---|---|
[python][Mapbox] geojson을 이용한 지도그리기 (3) (12) | 2021.01.12 |
[python] 레이더차트 시각화 (2) | 2020.09.23 |
[python][folium] geojson을 이용한 지도그리기 (2) (9) | 2020.09.02 |
[python][folium] geojson을 이용한 지도그리기 (1) (7) | 2020.09.02 |