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

Basemap属性错误求助:'AxesSubplot'无'get_axis_bgcolor'属性

解决Basemap与Matplotlib版本冲突导致的AttributeError问题

这个问题我之前踩过坑!本质是你的Basemap版本(1.0.7)和Matplotlib版本(2.2.0)不兼容导致的:

Matplotlib从2.0版本开始就弃用了get_axis_bgcolor()方法,换成了get_facecolor(),但Basemap 1.0.7还是在使用旧的API调用,所以触发了这个错误。

下面给你几个可行的解决办法:

  • 升级Basemap到兼容版本
    Basemap 1.2.0及以上版本已经修复了这个兼容性问题,如果你用conda环境,可以直接执行:

    conda install basemap=1.2.0
    

    要是用pip的话,更推荐搭配conda安装来避免依赖冲突,注意Basemap在PyPI的关联包为basemap-data-hires。

  • 降级Matplotlib到2.0.x版本
    如果你不想升级Basemap,可以把Matplotlib降到2.0系列的稳定版,比如:

    pip install matplotlib==2.0.2
    

    这个版本和Basemap 1.0.7完全兼容,不会再出现API不匹配的问题。

  • 临时修改Basemap源码(应急用)
    要是你既不能升级也不能降级,可以手动修改Basemap的源码:

    1. 找到你Python环境中Basemap的安装目录,比如Lib/site-packages/mpl_toolkits/basemap
    2. 打开basemap.py文件,搜索所有get_axis_bgcolor,替换成get_facecolor
    3. 同样,把set_axis_bgcolor替换成set_facecolor
      这个方法能快速解决报错,但不推荐长期使用,因为后续包更新可能会覆盖你的修改。

修改完之后再运行你的代码,应该就能正常显示带红色大陆的正交投影地图啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:36:43