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

Python中Plotly实现:地图上叠加点与多边形图层

在Plotly Geo地图上叠加多边形图层(无需Mapbox)

你可以借助plotly.graph_objects.Choropleth来加载GeoJSON多边形,并把它作为新图层加到你已有的散点地图里。下面是完整的实现代码:

import plotly.express as px
import plotly.graph_objects as go
import json

# 加载点数据和多边形GeoJSON(这里假设你已经有points数据集,多边形数据可从文件读取)
points = ...  # 你的点数据
polygon_geojson = json.load(open("your_polygons.geojson"))  # 替换为你的多边形GeoJSON路径

# 初始化点图层
fig = px.scatter_geo(points, 
                     'y',
                     'x',
                     color='blue',
                     labels={"poi": "Points of Interest"},
                     )

# 添加红色多边形图层
fig.add_trace(go.Choropleth(
    geojson=polygon_geojson,
    # 匹配GeoJSON中每个多边形的唯一标识,根据你的数据调整字段
    locations=[feat['properties']['id'] for feat in polygon_geojson['features']],
    featureidkey="properties.id",
    colorscale=[[0, "red"], [1, "red"]],  # 固定为红色
    showscale=False,  # 隐藏颜色标尺
    marker_line_color="darkred",  # 多边形边框颜色
    marker_line_width=1,
    opacity=0.5  # 半透明避免遮挡点
))

# 保持原有的地图样式设置
fig.update_geos(showcoastlines=True, coastlinecolor="Black",
                showland=True, landcolor="White",
                showocean=True, oceancolor="LightBlue")

fig.show()

关键说明:

  • 用Choropleth渲染纯色多边形是个实用技巧:通过设置首尾颜色一致的colorscale,再关闭颜色标尺,就能得到纯色填充的多边形。
  • locations和featureidkey必须对应:如果你的GeoJSON里没有properties.id,可以改成featureidkey="index",同时locations=list(range(len(polygon_geojson['features']))),用索引来匹配每个多边形。
  • 调整opacity参数可以平衡多边形和点的可见性,避免点被完全覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:40:26