著者:飯尾 淳
本連載では「Pythonを昔から使っているものの、それほど使いこなしてはいない」という筆者が、いろいろな日常業務をPythonで処理することで、立派な「蛇使い」に育つことを目指します。その過程を温
かく見守ってください。皆さんと共に勉強していきましょう。第10回は、データを可視化する例として、プログラムの対話型実行環境「Jupyter Notebook」をローカル環境で動かして簡単な地理情報を表示させてみます。
シェルスクリプトマガジン Vol.80は以下のリンク先でご購入できます。![]()
![]()
図7 町丁目データを地図上に重ねて表示するためのコード
for _, r in df.iterrows():
sim_geo = gpd.GeoSeries(r['geometry'])
geo_j = sim_geo.to_json()
geo_j = folium.GeoJson(data=geo_j,
style_function=lambda x: {'fillColor': 'grey', 'color': 'grey',
'weight': 0.5, 'fill_opacity': 0.3, 'line_opacity': 0.1 })
folium.Popup(r['Name']).add_to(geo_j)
geo_j.add_to(m)
m
図10 駅の位置と乗降客数のデータをまとめるためのコード
df2 = pd.merge(df_stations.drop('Description', axis=1), \
df_passengers, on='Name')
df2.head()
図12 駅の位置を地図に表示するためのコード(その1)
for _, row in df2.iterrows():
folium.Marker(
location=[row['geometry'].y, row['geometry'].x],
popup=row['Name']
).add_to(m)
m
図14 駅の位置を地図に表示するためのコード(その2)
m = folium.Map(location=[35.65, 139.34], \
zoom_start=12, tiles=‘openstreetmap’)
for _, r in df.iterrows():
sim_geo = gpd.GeoSeries(r['geometry'])
geo_j = sim_geo.to_json()
geo_j = folium.GeoJson(data=geo_j,
style_function=lambda x: {'fillColor': 'grey', 'color': 'grey',
'weight': 0.5, 'fill_opacity': 0.3, 'line_opacity': 0.1 })
folium.Popup(r['Name']).add_to(geo_j)
geo_j.add_to(m)
for _, row in df2.iterrows():
folium.CircleMarker(
location=[row['geometry'].y, row['geometry'].x],
radius=3,
color='red',
fill_color='red',
weight=2
).add_to(m)
m
図16 「緯度」「経度」「乗降客数」のカラムを持つデータフレームを作成するためのコード
df3 = pd.DataFrame(data={'Lat': df2[‘geometry'].y,
'Lng': df2['geometry'].x,
'Passengers': df2['Passengers']})
df3.head()