要在地图上显示移动平均值的变化,你需要结合地理信息系统(GIS)技术和数据分析能力。以下是涉及的基础概念、优势、类型、应用场景以及如何实现的具体步骤:
import pandas as pd
import folium
from folium.plugins import TimestampedGeoJson
# 假设我们有一个CSV文件,包含日期、经度、纬度和值
data = pd.read_csv('data.csv')
# 计算移动平均
data['moving_avg'] = data['value'].rolling(window=5).mean()
# 创建地图
m = folium.Map(location=[data['latitude'].mean(), data['longitude'].mean()], zoom_start=6)
# 添加时间序列的GeoJSON图层
features = []
for idx, row in data.iterrows():
feature = {
'type': 'Feature',
'geometry': {
'type': 'Point',
'coordinates': [row['longitude'], row['latitude']]
},
'properties': {
'time': row['date'].strftime('%Y-%m-%d'),
'popup': f'Date: {row["date"]}<br>Value: {row["moving_avg"]}',
'icon': 'circle',
'iconstyle': {
'fillColor': 'blue' if row['moving_avg'] > data['moving_avg'].mean() else 'red',
'fillOpacity': 0.8,
'stroke': 'false',
'radius': 7
}
}
}
features.append(feature)
TimestampedGeoJson({
'type': 'FeatureCollection',
'features': features
}, period='P1D', add_last_point=True).add_to(m)
# 保存地图
m.save('map.html')
通过以上步骤和方法,你可以在地图上有效地展示移动平均值的变化。
领取专属 10元无门槛券
手把手带您无忧上云