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

使用Plotly与Pandas绘制散点地图无显示问题排查求助

Plotly散点地图空白问题排查与修复

核心问题:经纬度赋值颠倒

原数据中Vehicle Location的格式为POINT (经度 纬度),但你拆分后将第一个值(经度)赋值给了Latt(纬度字段),第二个值(纬度)赋值给了Long(经度字段),导致地图定位到错误区域,直接显示空白。

次要问题:缩放级别过低

设置的zoom=3范围过大,华盛顿州对应的合适缩放级别在6-8之间,过低的缩放会让正确位置的点也无法在视野内显示。

修复后的完整代码

import pandas as pd
import os
import plotly.express as px
import plotly.io as pio

os.chdir('/Users/dylandeforrest/cs projects/')
wash_df = pd.read_csv('Electric_Vehicle_Population_Data.csv')
pio.renderers.default = 'browser'

unwanted = ["VIN (1-10)", "State", "Clean Alternative Fuel Vehicle (CAFV) Eligibility",  "Electric Range", "Base MSRP", "DOL Vehicle ID", "Electric Utility", "2020 Census Tract"]
for i in unwanted:
    del wash_df[i]
wash_df = wash_df.dropna()

# 修正经纬度拆分逻辑:POINT格式为 (经度 纬度),对应Lon和Lat字段
wash_df[['point','Lon', 'Lat']] = wash_df['Vehicle Location'].str.split(' ', expand=True)
del wash_df['point']

wash_df['Lon'] = wash_df['Lon'].str[1:]
wash_df['Lat'] = wash_df['Lat'].str[:-1]
wash_df['Lon'] = wash_df.Lon.astype(float)
wash_df['Lat'] = wash_df.Lat.astype(float)

# 使用正确的经纬度字段,调整缩放级别到适配华盛顿州的范围
fig = px.scatter_mapbox(wash_df, lat="Lat", lon="Lon", hover_name="Make", zoom=6, height=600)

fig.update_layout(mapbox_style="open-street-map")
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.show()

额外排查方向

  • 确认浏览器未禁用JavaScript:Plotly依赖JS渲染地图,需确保浏览器允许执行脚本。
  • 升级Plotly版本:旧版本可能存在兼容性问题,执行pip install --upgrade plotly更新。
  • 查看浏览器控制台错误:按F12打开开发者工具,检查Console面板是否有地图加载失败的报错信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:45:56