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

Streamlitでのサンプル

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("肉の種類",["牛肉","豚肉","鶏肉"])