我能够创建一个HeatMap,但是点没有显示出来:
import folium
import folium.plugins as plugins
import numpy as np
import pandas as pd
import geopandas as gpd
from folium import Choropleth, Circle, Marker
from folium.plugins import HeatMap, MarkerCluster, HeatMapWithTime
ucdp_df = pd.read_csv('csv/ged201.csv') # from https://ucdp.uu.se/downloads/index.html#ged_global
ucdp = gpd.GeoDataFrame(ucdp_df, geometry=gpd.points_from_xy(ucdp_df.longitude, ucdp_df.latitude))
ucdp.crs = {'init': 'epsg:4326'}
m = folium.Map([35, 41], tiles='stamentoner', zoom_start=6)
hm = HeatMapWithTime(data=ucdp[['latitude', 'longitude']].values.tolist(),
index=ucdp['year'].values.tolist(),
radius=10,
auto_play=True,
max_opacity=0.3)
hm.add_to(m)
m发布于 2020-10-16 23:23:22
您需要以正确的格式提供数据。这应该是可行的:
from collections import defaultdict, OrderedDict
data = defaultdict(list)
for r in ucdp_df.itertuples():
data[r.year].append([r.latitude, r.longitude])
data = OrderedDict(sorted(data.items(), key=lambda t: t[0]))然后使用数据:
m = folium.Map([35, 41],
tiles='stamentoner',
zoom_start=6)
hm = HeatMapWithTime(data=list(data.values()),
index=list(data.keys()),
radius=10,
auto_play=True,
max_opacity=0.3)
hm.add_to(m)
m然后你会得到:

https://stackoverflow.com/questions/64325958
复制相似问题