グランメゾン東京をみているので
ミシュランの三つ星店が気になってしまいました。
ミシュランの星のついたお店群を
いい感じのライブラリがあったので
可視化してみました。
解説動画はこちら
さて今回使用する可視化のライブラリは
Foliumです。
緯度経度を使用して
いい感じに地図にマッピングできます。
foliumを使うにはインストールしないといけません
まずはインストールしておきましょう。
pip install folium
可視化するにはデータが必要です。
次のようなデータを作りました。
必要な項目としては
お店の名前、星の数、ジャンル、住所、緯度経度などが必要です。
データを集めたら
Foliumを使って可視化です。
地図にマッピングした
HTMLファイルを作成することができます。
実際に作成したコードを貼っておきます。
コードの説明ですが
まず星を出し分けるためにカスタムアイコンを用います。
CostomIconをインポートしておきます。
folium.Mapで初期マップを作ります。
緯度経度とズーム値を指定して
どこの地点から始めるのかを指定できます。
この初期マップにお店を一軒ずつ加えていきます。
グループ化しておくと
アイコンを点けたり消したり出来るので
星の種別ごとにグループ化しておきます。
グループごとにお店を加えて
LayerControlで出し分けをするための
パーツを作れます。
最後saveでHTMLファイルに出力をして
おしまいです。
出来上がりはこんな感じです。
3つ星のお店だけ表示させました。
Foliumでは星ごとに出し入れ出来るので
右上のパーツを押してみてください。
出来上がりをリンクしておきますね。
ミシュランの3つ星のお店
400店舗ほどあるので
行きたい方はぜひ使ってみてください。
さて
緯度経度を用いた可視化も
Pythonを使えば簡単にできます。
ぜひ試してみてくださいね
グランメゾン東京の最終回も楽しみですね!!!
それでは
ミシュランの三つ星店が気になってしまいました。
ミシュランの星のついたお店群を
いい感じのライブラリがあったので
可視化してみました。
解説動画はこちら
さて今回使用する可視化のライブラリは
Foliumです。
緯度経度を使用して
いい感じに地図にマッピングできます。
foliumを使うにはインストールしないといけません
まずはインストールしておきましょう。
pip install folium
可視化するにはデータが必要です。
次のようなデータを作りました。
必要な項目としては
お店の名前、星の数、ジャンル、住所、緯度経度などが必要です。
データを集めたら
Foliumを使って可視化です。
地図にマッピングした
HTMLファイルを作成することができます。
実際に作成したコードを貼っておきます。
import folium from folium.features import CustomIcon import pandas as pd stars = { '一つ星' :'star1.png', '二つ星' :'star2.png', '三つ星' :'star3.png', 'ビブグルマン' :'starbib.png' } def makeicon(icon_image): icon = CustomIcon( icon_image=icon_image, icon_size=(30, 30), icon_anchor=(30, 30), shadow_image='', shadow_size=(5, 5), shadow_anchor=(4, 4), popup_anchor=(-3, -3)) return icon def make_maker(r): tmp = folium.Marker( location = [r['longitude'],r['latitude']], popup = r['name'] + ' : ' + r['genre'], tooltip = r['name'] + ' : ' + r['genre'] + ' : ' + r['address'].replace('東京都',''), icon = makeicon(stars[r['star']])) return tmp michelin_data = pd.read_table('michelin_data_2020.csv') plot_map = folium.Map(location=[35.6725175,139.7210145] , zoom_start=12) star1_group = folium.FeatureGroup(name="一つ星").add_to(plot_map) star2_group = folium.FeatureGroup(name="二つ星").add_to(plot_map) star3_group = folium.FeatureGroup(name="三つ星").add_to(plot_map) bib_group = folium.FeatureGroup(name="ビブグルマン").add_to(plot_map) for i, r in michelin_data[michelin_data['star']=='一つ星'].iterrows(): star1_group.add_child(make_maker(r)) for i, r in michelin_data[michelin_data['star']=='二つ星'].iterrows(): star2_group.add_child(make_maker(r)) for i, r in michelin_data[michelin_data['star']=='三つ星'].iterrows(): star3_group.add_child(make_maker(r)) for i, r in michelin_data[michelin_data['star']=='ビブグルマン'].iterrows(): bib_group.add_child(make_maker(r)) folium.LayerControl().add_to(plot_map) plot_map.save("mishelin_all_maps.html")
コードの説明ですが
まず星を出し分けるためにカスタムアイコンを用います。
CostomIconをインポートしておきます。
folium.Mapで初期マップを作ります。
緯度経度とズーム値を指定して
どこの地点から始めるのかを指定できます。
この初期マップにお店を一軒ずつ加えていきます。
グループ化しておくと
アイコンを点けたり消したり出来るので
星の種別ごとにグループ化しておきます。
グループごとにお店を加えて
LayerControlで出し分けをするための
パーツを作れます。
最後saveでHTMLファイルに出力をして
おしまいです。
出来上がりはこんな感じです。
3つ星のお店だけ表示させました。
Foliumでは星ごとに出し入れ出来るので
右上のパーツを押してみてください。
出来上がりをリンクしておきますね。
ミシュランの3つ星のお店
400店舗ほどあるので
行きたい方はぜひ使ってみてください。
さて
緯度経度を用いた可視化も
Pythonを使えば簡単にできます。
ぜひ試してみてくださいね
グランメゾン東京の最終回も楽しみですね!!!
それでは