Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Folium中的HeatMapWithTime插件_Python_Python 3.x_Heatmap_Geopandas_Folium - Fatal编程技术网

Python Folium中的HeatMapWithTime插件

Python Folium中的HeatMapWithTime插件,python,python-3.x,heatmap,geopandas,folium,Python,Python 3.x,Heatmap,Geopandas,Folium,我能够创建热图,但没有显示点: 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 = p

我能够创建热图,但没有显示点:

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

您需要以正确的格式提供数据。这应该起作用:

从集合导入defaultdict,orderedict
数据=默认DICT(列表)
对于ucdp_df.itertuples()中的r:
数据[r.year]。追加([r.latitude,r.longitude])
data=OrderedDict(已排序(data.items(),key=lambda t:t[0]))
然后使用以下数据:

m=folium.Map([35,41],
“stamentoner”,
缩放(开始=6)
hm=Heatmap WithTime(数据=列表(data.values()),
索引=列表(data.keys()),
半径=10,
自动播放=正确,
最大不透明度=0.3)
hm.add_至(m)
M
你会得到:


非常感谢。这很有帮助。你知道如何确保热图和时间始终位于任何其他层的前面吗?我添加了一个ImageOverlay,现在热图WithTime显示在overlay图像的后面。[问题]:如果我的回答能解决你的问题,请接受。对于您的其他请求,请打开一个新问题。谢谢