dev.classmethod.jp
imabari.hateblo.jp
import pandas as pd
df = pd.read_csv(
"http://www.dkt-s.com/common/data/data_convert.php?name=d_store",
sep="\t",
index_col=0,
)
df["ブランド"] = df["店舗名"].str.extract(
"^(ラ・ムー|ディオ(マート)?|ら・む〜マート|バリュー100|ザ・大黒天|マツサカ|生鮮食品おだ|マミーズ|西源).+"
)[0]
import matplotlib.pyplot as plt
import japanize_matplotlib
df["ブランド"].value_counts().plot.barh()
!pip install japanmap
from japanmap import pref_names
df["都道府県"] = df["都道府県コード"].apply(lambda x: pref_names[x])
pd.crosstab(df["都道府県"], df["ブランド"]).plot.barh(stacked=True, figsize=(5, 10))
コロプレス図
pref = df["都道府県コード"].value_counts()
from japanmap import picture, get_data, pref_map
from matplotlib.colors import rgb2hex
norm = plt.Normalize(vmin=pref.min(), vmax=pref.max())
cmap = plt.get_cmap("bwr")
c = pref.apply(lambda x: cmap(norm(x)))
cols = [rgb2hex(i) for i in c]
svg = pref_map(pref.index, cols=cols, width=3)
svg
plt.figure(figsize=(2, 2), dpi=200)
plt.imshow(picture(c, 255))
plt.tick_params(
bottom=False,
top=False,
left=False,
right=False,
labelbottom=False,
labeltop=False,
labelleft=False,
labelright=False,
)
plt.savefig("japan.png")
地図
import folium
daikoku_map = folium.Map(location=[34.06604300, 132.99765800], zoom_start=9)
for i, r in df.iterrows():
if r["ブランド"] == "ラ・ムー":
icon_color = "red"
elif r["ブランド"] == "ディオ":
icon_color = "blue"
elif r["ブランド"] == "ディオマート":
icon_color = "lightblue"
elif r["ブランド"] == "ら・む〜マート":
icon_color = "green"
elif r["ブランド"] == "バリュー100":
icon_color = "lightgreen"
elif r["ブランド"] == "ザ・大黒天":
icon_color = "lightgray"
else:
icon_color = "pink"
folium.Marker(
location=[r["緯度"], r["経度"]], popup=r["店舗名"], icon=folium.Icon(color=icon_color)
).add_to(daikoku_map)
daikoku_map