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())
import streamlit as st from japanmap import picture import matplotlib.pyplot as plt import pandas as pd import numpy as np df = pd.read_csv("data/SSDSE-C-2025.csv",encoding='shift-jis',header=1) df = df[["都道府県","牛肉"]] # 最小値を0 、最大値を 1にする data = df["牛肉"] df["牛肉"] = np.interp(data, (data.min(), data.max()), (0, 1)) # 辞書作成 dic = {} cmap = plt.get_cmap('Reds') # 赤のカラーマップ for ken, val in df.values: dic[ken] = cmap(val, bytes=True) # 地図表示 st.image(picture(dic))
種類を選択する場合
type = st.sidebar.radio("肉の種類",["牛肉","豚肉","鶏肉"])