pip install japanmap
import matplotlib.pyplot as plt from japanmap import picture plt.rcParams['figure.figsize'] = (8, 8) #サイズ plt.imshow(picture())
県名:色 の辞書を作成しpictureで指定する。色はRGBのタプルや文字列の色コード、色名など。県名は県があっても無くても良い。
data = { '北海道':(255, 0, 0), '東京':(0, 255, 0), '愛知':'#00ff00', '大阪':'Yellow', '愛媛':'Purple', '熊本県':(0,0, 155), } plt.axis("off") plt.imshow(picture(data))
例としてSSDSEの家計消費データから牛肉の消費データを読み込む。
import pandas as pd df = pd.read_csv("SSDSE-C-2023.csv",encoding='shift-jis',header=1) df = df[["都道府県","牛肉"]] df
値を色にするためには、matplotlibのcolormapを利用する。colormapには0~1を指定すると対応する色が取得出来るので、データの値を0~1に変換しておく。これにはnumpyのinterp関数を使用する。
# 牛肉の列を最小値0、最大値1に比例させる import numpy as np data = df["牛肉"] df["牛肉"] = np.interp(data, (data.min(), data.max()), (0, 1)) df
県名をキー、値を色とした辞書を作成する。値はcolomapより取得する。
from japanmap import picture import matplotlib.pyplot as plt # 辞書作成 dic = {} cmap = plt.get_cmap('Reds') # 赤のカラーマップ for ken, val in df.values: dic[ken] = cmap(val, bytes=True) # 地図表示 plt.imshow(picture(dic))
画像として、st.imageで表示。
import streamlit as st from japanmap import picture st.title('日本地図') st.image(picture())