使用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
相关产品推荐
相关产品推荐

