You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Plotly绘制印度带城市名及区域边界的交互式AQI地图

使用Plotly绘制交互式印度AQI地图

以下是实现带城市名称和印度区域边界的交互式AQI地图的完整代码,可完全替代原Matplotlib静态图实现:

步骤1:导入依赖库

import plotly.express as px
import plotly.graph_objects as go
import geopandas as gpd

步骤2:加载并处理印度边界数据

# 加载全球基础地图数据,筛选印度区域
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
india_boundary = world[world.name == 'India']

# 转换为Plotly兼容的GeoJSON格式
india_geojson = india_boundary.__geo_interface__

步骤3:预处理城市AQI数据

假设你的city_day_gdf是包含点几何的GeoDataFrame,先提取经纬度列(如果已有lat/lon字段可跳过此步):

city_day_gdf['lon'] = city_day_gdf.geometry.x
city_day_gdf['lat'] = city_day_gdf.geometry.y

步骤4:绘制交互式AQI散点图

# 创建散点地图,hover时显示城市名称、AQI及等级
fig = px.scatter_mapbox(
    city_day_gdf,
    lat='lat',
    lon='lon',
    color='AQI_Bucket',
    size='AQI',
    size_max=50,  # 限制标记最大尺寸,避免遮挡
    color_continuous_scale='PuBuGn',  # 和原Matplotlib配色一致
    hover_data={
        'City': True,  # 替换为你数据集中实际的城市名字段
        'AQI': True,
        'AQI_Bucket': True,
        'lat': False,
        'lon': False
    },
    title='2015-2020年印度空气质量指数(AQI)分布'
)

步骤5:叠加印度区域边界

# 添加印度边界轨迹,保留原Matplotlib的灰色底+白色边界风格
fig.add_trace(
    go.Scattermapbox(
        geojson=india_geojson,
        locations=india_boundary.index,
        featureidkey="properties.index",
        mode='lines',
        line=dict(width=2, color='white'),
        fillcolor='rgba(128,128,128,0.3)',
        hoverinfo='skip'  # 悬停时不显示边界信息,避免干扰
    )
)

步骤6:配置地图布局

# 设置地图视角和样式
fig.update_layout(
    mapbox_style='carto-positron',  # 可选样式:open-street-map、stamen-terrain等
    mapbox_zoom=4,
    mapbox_center={"lat": 20.5937, "lon": 78.9629},  # 印度地理中心坐标
    margin={"r":0,"t":50,"l":0,"b":0}
)

# 调整颜色条位置,避免遮挡地图
fig.update_coloraxes(colorbar=dict(
    title='AQI等级',
    orientation='horizontal',
    yanchor='bottom',
    y=-0.15
))

# 显示交互式地图
fig.show()

关键说明

  • 替换hover_data中的'City'为你数据集中实际的城市名字段
  • 地图样式可根据需求切换,carto-positron是简洁的浅色风格,适合数据展示
  • 标记尺寸通过size_max限制,避免大AQI值的标记过度遮挡其他城市
  • 悬停时会自动显示城市名称、AQI数值和AQI等级,完全满足交互式需求

内容的提问来源于stack exchange,提问作者Najo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:25:14