第2章 日本地図
1 japanmap
japanmapを使うと簡単にPythonで日本地図を表示できます。
japan.ipynb ファイルに、以下のように記述します。
import matplotlib.pyplot as plt
from japanmap import picture
plt.rcParams['figure.figsize'] = (8, 8) #サイズ
plt.imshow(picture())
日本地図の表示にはmatplotlibを使用します。サイズを設定し、後はimshowで画像を表示します。このとき、japanmapモジュールの picture() 関数で日本地図を表示します。
2 色の付加
県ごとに色を付けるには、県名:色 の辞書を作成しpictureの引数で指定します。
色はRGBや文字列の色コード、色名など様々な指定が可能です。県名は県があっても無くてもOKです。。
data = {
'北海道':(255, 0, 0),
'東京':(0, 255, 0),
'愛知':'#00ff00',
'大阪':'Yellow',
'愛媛':'Purple',
'熊本県':(0,0, 155),
}
plt.axis("off") # 目盛り非表示
plt.imshow(picture(data))
3 pandasとの連携
例としてSSDSEの家計消費データから牛肉の消費データを読み込みます。
import pandas as pd
df = pd.read_csv("SSDSE-C-2024.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))