解决使用Plotly Express在Windows上绘制世界地图时无地图显示问题

环境

我们在Windows 11上使用Python 3.11.2。

目标

我们使用下面的Python代码,试图使用Plotly Express生成一副世界地图,并将地图上的一些特定位置用红点标出。

import plotly.express as px

lons = [-150.7585, -153.4716, -148.7531, -159.6267, -155.248336791992]
lats = [61.7591, 59.3152, 63.1633, 54.5612, 18.7551670074463]

fig = px.scatter_geo(lat=lats, lon=lons, title="在世界地图上随意标记出一些点")
fig.show()

预期现象

Plotly Express绘制出一副世界地图。

实际现象

然而,我们却看到了一片空白。
在这里插入图片描述

检查问题

通过快捷键Ctrl+Shift+J在Google Chrome中调出控制台,发现在加载Plotly生成的页面时出现了一些JavaScript错误。这些错误声称在取回一个名为https://cdn.plot.ly/world_110m.json的URL时发生了域名无法解析的错误。
在这里插入图片描述

并且,经过尝试,该域名确实无法被解析,而且也无法被Ping通。

nslookup cdn.plot.ly
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** 无法找到服务器 cdn.plot.ly 的地址: Timed out

啼笑皆非的解决方案

过了一分钟,该域名突然可以被解析。

ping cdn.plot.ly

正在 Ping osff.map.fastly.net [151.101.2.217] 具有 32 字节的数据:
来自 151.101.2.217 的回复: 字节=32 时间=76ms TTL=57
来自 151.101.2.217 的回复: 字节=32 时间=27ms TTL=57
来自 151.101.2.217 的回复: 字节=32 时间=21ms TTL=57
来自 151.101.2.217 的回复: 字节=32 时间=29ms TTL=57

于是此时尝试生成世界地图,成功地完成。
在这里插入图片描述

结论

Plotly需要从其CDN上取得内容来帮助绘制世界地图。当网络不可用时,将无法完成。因此,Plotly也无法离线绘制世界地图。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值