日本地図

日本地図でヒートマップなどを作成する場合に便利なパッケージです。開発者に感謝!python3.9以上のバージョンで実行する必要があります。

地図を表示する

import matplotlib.pyplot as plt
import numpy as np
from japanmap import picture

np.random.seed(77)

plt.figure(figsize=(10, 10))
plt.xticks([])
plt.yticks([])
plt.imshow(picture())

png

着色する

たとえば、以下のような県名をkey、色名をvalueとした辞書を用意することで日本地図を着色できます。

{'北海道': '#a9e5bb', '青森': '#fcf6b1', '沖縄': '#fcf6b1'}
colors = [
    "#e3170a",
    "#a9e5bb",
    "#fcf6b1",
    "#f7b32b",
    "#2d1e2f",
]

prefectures = [
    "北海道",
    "青森",
    "岩手",
    "宮城",
    "秋田",
    "山形",
    "福島",
    "茨城",
    "栃木",
    "群馬",
    "埼玉",
    "千葉",
    "東京",
    "神奈川",
    "新潟",
    "富山",
    "石川",
    "福井",
    "山梨",
    "長野",
    "岐阜",
    "静岡",
    "愛知",
    "三重",
    "滋賀",
    "京都",
    "大阪",
    "兵庫",
    "奈良",
    "和歌山",
    "鳥取",
    "島根",
    "岡山",
    "広島",
    "山口",
    "徳島",
    "香川",
    "愛媛",
    "高知",
    "福岡",
    "佐賀",
    "長崎",
    "熊本",
    "大分",
    "宮崎",
    "鹿児島",
    "沖縄",
]

pref_color_dict = {prefecture: np.random.choice(colors) for prefecture in prefectures}

plt.figure(figsize=(10, 10))
plt.xticks([])
plt.yticks([])
plt.imshow(picture(pref_color_dict))

print(f"入力:{pref_color_dict}")
入力:{'北海道': '#2d1e2f', '青森': '#2d1e2f', '岩手': '#f7b32b', '宮城': '#e3170a', '秋田': '#e3170a', '山形': '#a9e5bb', '福島': '#2d1e2f', '茨城': '#f7b32b', '栃木': '#e3170a', '群馬': '#f7b32b', '埼玉': '#2d1e2f', '千葉': '#2d1e2f', '東京': '#fcf6b1', '神奈川': '#f7b32b', '新潟': '#f7b32b', '富山': '#a9e5bb', '石川': '#f7b32b', '福井': '#a9e5bb', '山梨': '#a9e5bb', '長野': '#2d1e2f', '岐阜': '#e3170a', '静岡': '#2d1e2f', '愛知': '#a9e5bb', '三重': '#e3170a', '滋賀': '#a9e5bb', '京都': '#fcf6b1', '大阪': '#f7b32b', '兵庫': '#2d1e2f', '奈良': '#f7b32b', '和歌山': '#a9e5bb', '鳥取': '#2d1e2f', '島根': '#e3170a', '岡山': '#2d1e2f', '広島': '#e3170a', '山口': '#a9e5bb', '徳島': '#f7b32b', '香川': '#2d1e2f', '愛媛': '#f7b32b', '高知': '#fcf6b1', '福岡': '#2d1e2f', '佐賀': '#2d1e2f', '長崎': '#2d1e2f', '熊本': '#fcf6b1', '大分': '#a9e5bb', '宮崎': '#fcf6b1', '鹿児島': '#a9e5bb', '沖縄': '#2d1e2f'}

png

特定の地域のみを拡大表示する

日本の特定の地域(関東・関西など)のみを拡大して表示することもできます。

from japanmap import get_data, groups, pref_map

print(f"groups: {groups}")
pref_map(
    groups["近畿"], cols=[np.random.choice(colors) for _ in groups["近畿"]], qpqo=get_data()
)
groups: {'北海道': [1], '東北': [2, 3, 4, 5, 6, 7], '関東': [8, 9, 10, 11, 12, 13, 14], '中部': [15, 16, 17, 18, 19, 20, 21, 22, 23], '近畿': [24, 25, 26, 27, 28, 29, 30], '中国': [31, 32, 33, 34, 35], '四国': [36, 37, 38, 39], '九州': [40, 41, 42, 43, 44, 45, 46, 47]}

svg