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

Mac HighSierra下Pyplot投影报numpy.float64错误,无法显示/保存图形

解决Pyplot投影报错“Pyplot projection doesn't admit data: numpy.float64”的方案

我之前在维护旧Python环境时碰到过几乎一模一样的问题,结合你的环境(High Sierra、Python2.7、IPython5.5.0),这个问题大概率是版本兼容性冲突导致的——毕竟Python2.7早在2020年就停止官方支持了,后续matplotlib的3.x版本完全放弃了对它的适配,而投影相关模块刚好是兼容性问题的重灾区。给你几个针对性的解决步骤:


1. 锁定兼容的matplotlib版本

Python2.7能稳定支持的最高matplotlib版本是2.2.5,如果你的matplotlib是3.x版本,肯定会出现各种奇怪的报错。先检查当前版本:

pip2 show matplotlib

如果版本高于2.2.5,先卸载旧版本:

pip2 uninstall -y matplotlib

然后重装指定兼容版本:

pip2 install matplotlib==2.2.5

2. 同步适配numpy版本

numpy的新版本同样不再支持Python2.7,你需要把numpy降到1.16.6(Python2.7支持的最高numpy版本),否则即使matplotlib版本正确,也可能因为numpy的API变化触发报错:

pip2 uninstall -y numpy
pip2 install numpy==1.16.6

3. 验证投影功能是否恢复正常

安装完成后,用一段极简代码测试polar投影(最容易复现问题的场景之一):

import matplotlib.pyplot as plt
import numpy as np

# 测试极坐标投影
theta = np.linspace(0, 2*np.pi, 100)
r = np.sin(2*theta)

plt.figure()
ax = plt.subplot(111, projection='polar')
ax.plot(theta, r)
ax.grid(True)
plt.show()

如果这段代码能正常显示带网格和曲线的极坐标图,说明问题已经解决。


额外提醒

  • 尽量避免在Python2.7环境下做复杂可视化开发,不仅是matplotlib,绝大多数依赖库都已经停止维护,后续还会遇到更多难以排查的问题。如果条件允许,建议升级到Python3.8+(High Sierra完全支持),能彻底规避这类兼容性陷阱。
  • IPython5.5.0和matplotlib2.2.5是兼容的,不需要降级IPython,除非你后续遇到交互相关的其他问题。

内容的提问来源于stack exchange,提问作者Isa Rebollido

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:49:32