Python 日本地図

日本地図

インストール

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))

pandasとの連携

例として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))

Streamlitでの表示

画像として、st.imageで表示。

import streamlit as st
from japanmap import picture

st.title('日本地図')
st.image(picture())