我正在尝试用我的数据框绘制叶折线。 我有这样的数据
Datetime Lat lon Cars
2021-06-01 4.5 1.1 Car1
2021-06-01 4.8 0.8 Car1
2021-06-01 4.4 0.9 Car2
2021-06-02 4.7 1.0 Car2
我想绘制 Folium.PolyLine,但具有像 HeatMapwithtime 这样的时间维度。
有人可以帮助我吗?
提前致谢
以下是如何执行此操作的简单示例:
import folium
import pandas as pd
from folium.plugins import TimestampedGeoJson
data = {
'Datetime': ['2021-06-01', '2021-06-01', '2021-06-01', '2021-06-02', '2021-06-02', '2021-06-02'],
'Lat': [4.5, 4.8, 4.4, 4.7, 4.6, 4.9],
'Lon': [1.1, 0.8, 0.9, 1.0, 1.2, 1.3],
'Cars': ['Car1', 'Car1', 'Car2', 'Car2', 'Car1', 'Car2']
}
df = pd.DataFrame(data)
grouped_data = {date: group[['Lat', 'Lon']].values.tolist() for date, group in df.groupby('Datetime')}
m = folium.Map(location=[4.5, 1.0], zoom_start=10)
features = [
{
'type': 'Feature',
'geometry': {
'type': 'LineString',
'coordinates': coords,
},
'properties': {'time': date}
}
for date, coords in grouped_data.items()
]
TimestampedGeoJson({'type': 'FeatureCollection', 'features': features}, period='P1D', duration='P1D').add_to(m)
m
它为您提供了地图,并能够通过确定每秒的帧数来减慢可视化速度。