前兩天漫長的前處理,我們已經整合了台鐵路線與對話的資料,今天就把圖畫完吧!
首先,再次看看昨天的成果:
train_lines_talk
有了這樣的資料,可以開始畫圖了
第一種畫法我們使用circlemarker
我們以點的方式來呈現資訊
import folium
m = folium.Map((25.01743512170683,121.9402276726103),zoom_start=13)
for idx,row in train_lines_talk.iterrows():
folium.CircleMarker(
location=(list(row['geometry'].coords)[0][1],list(row['geometry'].coords)[0][0]),
radius=20,
popup=row['text'],
color='#3186cc',
fill=True,
fill_color='#3186cc'
).add_to(m)
m
為了更清楚呈現資訊,把路線的資訊加進來
folium.GeoJson(
train_lines.to_json(),
name='geojson').add_to(m)
m
最後,我們試著把時間資料加進來
並使用TimestampedGeoJson這個外掛
要先把我們的資料整合成TimestampedGeoJson
features = [
{
'type': 'Feature',
'geometry': {
'type': 'Point',
'coordinates': list(row['geometry'].coords)[0],
},
'properties': {
'times': ['2018-10-21T'+row['time'][0],'2018-10-21T'+row['time'][1]],
'talk': row['text'],
'location':row['location'],
}
}
for idx,row in train_lines_talk.iterrows()
]
import folium
m = folium.Map((25.01743512170683,121.9402276726103),zoom_start=13)
folium.GeoJson(
train_lines.to_json(),
name='geojson').add_to(m)
plugins.TimestampedGeoJson({
'type': 'FeatureCollection',
'features': features,
}, period='PT1M', add_last_point=True).add_to(m)
m
完成!