微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Matplotlib - TypeError: isinstance() arg 2 必须是类型或类型元组

如何解决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 举报,一经查实,本站将立刻删除。