python - 使用 TimestampedGeoJson 和 Folium 绘制数据框不显示点
问题描述
这是我的数据的样子:
我正在尝试使用数据滑块绘制相对于每年的位置。
我的代码:
from pathlib import Path
import pandas as pd
import numpy as np
import seaborn as sns
import folium
from folium.plugins import TimestampedGeoJson
def create_geojson_features(df):
print('Creating GeoJSON features...')
features = []
for year in df['Year'].unique():
df_segmented = df[(df['Year']== year)]
feature = {
'type': 'Feature',
'geometry': {
'type':'Point',
'coordinates': list(map(list,zip(df_segmented.Latitude.astype(float) , df_segmented.Longitude.astype(float))))
}
,'properties': {
'times': df_segmented['Year'].astype(float).iloc[0],
'style': {'color': "Blue"},
'icon': 'circle',
'iconstyle':{
'fillColor': 'Blue',
'fillOpacity': 0.8,
'stroke': 'true',
'radius': df_segmented['value'].mul(10).astype(float).to_list(),
}
,'popup' : df_segmented['Name'].to_list(),
}
}
features.append(feature)
return features
def make_map(features):
print('Making map...')
pollution_map = folium.Map(location=(32, 67), tiles="OpenStreetMap", zoom_start=4)
TimestampedGeoJson(
{'type': 'FeatureCollection',
'features': features}
, period='P1M'
, add_last_point=True
, transition_time=200
, auto_play=True
, max_speed=1
, loop=True
, loop_button=True
, time_slider_drag_update=True,
).add_to(pollution_map)
print(' Done.')
return pollution_map
def plot_pollutant():
df = pd.read_csv("Energy.csv", parse_dates=True)
df.dropna(inplace=True)
features = create_geojson_features(df)
result = make_map(features)
return result
r = plot_pollutant()
当我尝试查看生成的地图时,它不显示任何数据点,滑块也不显示。注意:我已将“年份”转换为浮点数,因为它给出了类型错误。
有人可以指出我在这里做错了什么吗?每年的字典都存储在一个名为 features 的列表中,该列表被传递给绘图函数。
解决方案
推荐阅读
- mongodb - 如何从丢失的遗留 MongoDB 中恢复数据/恢复到以前的 mongo 迭代?
- django - 我正在更新我的 pg_hba.conf,但文件每天都会重置为默认值
- python - 从odoo 10中现有打开的窗口调用向导窗口?
- xslt - XSL:只有特定祖先的后代
- regex - 使用正则表达式和 sed 将占位符 - 波浪号 ~ 替换为实际内容
- node.js - 是否可以在 Angular 项目中使用 NodeJs 包?
- webdriver - 项目在 Chrome 中运行,但不在 Mozilla Firefox 中
- excel - 插入公式作为对另一个公式的单元格引用
- angularjs - 无法在“DOMWindow”上执行“postMessage”:提供的目标来源(“https://outlook.office.com”)与收件人窗口的来源不匹配
- spring-boot - 如何使用通配符制作 WebFilter urlPatterns