コンテンツにスキップ

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