如何修复 ndarray 类型的对象在使用 mpld3 时不可 JSON 序列化?

How to fix Object of type ndarray is not JSON serializable while using mpld3?

Python mpld3 '.show()' 给我这个错误 "Object of type ndarray is not JSON serializable"

我知道这里有很多重复的问题,但是,我没能找到最近的一个。这似乎是 mpld3 的常见问题。

使用 Matplotlib 版本 3.1.3

使用 mpld3 版本 0.3

我也在使用 Anaconda 并进行了 conda upgrade --all 和 conda update --all 并且仍然出现此错误。

这里是一些重现错误的代码。 [真的很简单]

import matplotlib.pyplot as plt
import mpld3

fig, ax = plt.subplots()
x, y = [[1,2,3],[4,3,2]]

ax.scatter(x, y)

mpld3.show()

有快速修复的想法吗?或者,如果有人比我更了解,可以 post 这个可以适当解决的地方吗?

上面的代码只是一个简单的示例,用于说明绘图创建本身没有使用 numpy 数组。这绝不是我正在尝试做的事情的代表 [以简单的方式在网页上显示 matplotlib 图]。我知道 matplotlib 在内部使用 numpy,所以 mpld3 解析图形属性字典一定有问题。

我遇到了和你一样的问题,我可以用你的代码重现。 当我遇到这个错误时,我正在测试一个新安装的 mpld3。

我修复它的方法是卸载 mpld3(我用 pip 安装它)并用 conda 重新安装它。 然后它起作用了。 使用 conda list 检查版本会给我两个包的相同版本。 我记得读过一篇文章,说不应该同时使用 pip 和 conda 来进行 python 包管理。我总是忘记申请这条规则。

希望它能为您解决。