일본 소멸위험지수를 계산하여 일본 지도 시각화를 하겠습니다.
소멸위험지수는 한 지역의 20~39세 여성 인구 수를 해당 지역의 65세 이상 고령 인구 수로 나눈 값을 의미합니다.
데이터를 얻기 위해서 먼저 일본 통계사이트에서 도도부현 기준 인구데이터를 가져오겠습니다.
일본 도도부현 시각화
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 |