在Python中使用Mapbox绘制散点图时遇PlotlyRequestError求助
解决Kaggle Kernel中Plotly Mapbox散点图的PlotlyRequestError问题
我瞅见你在Kaggle Kernel里尝试用Plotly结合Mapbox做散点图时,碰到了PlotlyRequestError: No message的问题——明明已经配置了Mapbox访问令牌,还是报错。咱们一步步拆解问题,搞定它:
1. 先改个容易踩的拼写坑
你的代码里layout.mapbox下面写的参数是accesstoken,但Plotly官方要求的参数名是access_token(中间的下划线可不能丢!)。这个拼写错误会导致Mapbox令牌无法被正确读取,直接引发请求失败。
2. 适配Kaggle的离线环境
你现在用的plotly.plotly是旧版的Plotly在线API客户端,而Kaggle Kernel是离线运行的环境,更适合用离线模式渲染图表。推荐改用plotly.graph_objects结合fig.show(),同时配置Kaggle对应的渲染器,避免在线请求的问题。
修正后的完整代码
import plotly.graph_objs as go import plotly.io as pio # 配置Kaggle Kernel适配的渲染器 pio.renderers.default = "kaggle" mapbox_access_token = 'pk.eyJ1IjoiamFtZXNwOTkiLCJhIjoiY2pobmd5aGJxMWdiYzNhcXdpaWVhdzhkbCJ9._o-_ysHz5HG9S49UizQiqQ' data = [ go.Scattermapbox( lat=['45.5017'], lon=['-73.5673'], mode='markers', marker=dict( size=14 ), text=['Montreal'], ) ] layout = go.Layout( autosize=True, hovermode='closest', mapbox=dict( access_token=mapbox_access_token, # 这里修正了参数名 bearing=0, center=dict( lat=45, lon=-73 ), pitch=0, zoom=5 ), ) # 用go.Figure创建图表对象更规范 fig = go.Figure(data=data, layout=layout) fig.show()
额外小贴士
- 确认你的Mapbox令牌是有效的,没有过期或者权限限制——可以去Mapbox官网的账户页面查一下令牌状态。
- 如果改完代码还是报错,试试重启Kaggle Kernel,有时候缓存会搞事情。
内容的提问来源于stack exchange,提问作者James Pifat
相关产品推荐
相关产品推荐

