如何解决Matplotlib - TypeError: isinstance() arg 2 必须是类型或类型元组
我正在尝试使用 matplotlib 库绘制一些图。但是,每当我尝试运行 plt.plot() 时,都会出现错误:
if (isinstance(marker,np.ndarray) and marker.ndim == 2 and
TypeError: isinstance() arg 2 must be a type or tuple of types
在库的markers.py 脚本中
plt.plot([1,2,3],[1,3])
进入 matplotlib 源代码并将 isinstance(VarName,np.ndarray) 的实例更改为 isinstance(VarName,type(np.ndarray)) 消除了该特定行上的错误,尽管我必须在我相信每次提到 isinstance 都会让它消失。这显然是一个次优的解决方案。
注意,创建一个 numpy 数组并打印 isinstance(array,np.ndarray) 的结果也会给我错误,而打印 isinstance(array,type(np.ndarray)) 的结果正确返回 true,所以我不认为这是 matplotlibs 使用 np.ndarray 的错误,也不是正确导入 numpy,而是整个环境的持续问题。
我正在使用 conda 在带有 python 3.8.10 的 Windows 机器上运行虚拟环境(该错误也发生在 python 3.7 上),据我所知,numpy 和 matplotlib 都是最新的并且可以正确导入.
我确定这是一个相对基本的错误,虽然我一生都无法弄清楚,但我找不到其他人似乎以前遇到过这个问题。至少不是 matplotlib 或 ndarrays。
解决方法
抱歉,我确实在代码前面的单独脚本中重新定义了 np.ndarray。我没有考虑过这一点,因为我没有意识到新定义可以跨多个脚本保持不变。
定义变量时出现简单错误或使用“=”代替“:”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。