【问题标题】:How to fix Object of type ndarray is not JSON serializable while using mpld3?使用mpld3时如何修复ndarray类型的对象不是JSON可序列化的?
【发布时间】:2020-09-17 00:20:08
【问题描述】:

Python mpld3 '.show()' 给我这个错误“ndarray 类型的对象不是 JSON 可序列化的”

我知道这里有很多重复的问题,但是,我找不到最近的问题。这似乎是 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()

关于快速修复的任何想法?或者,如果有人比我更了解,可以将其发布在可以适当解决的地方吗?

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

【问题讨论】:

  • 你为什么不使用plt.show()?这里mpld3的目的是什么?
  • 我的目标是在网页上显示情节。否则,是的,我会使用 plt.show()

标签: python matplotlib mpld3


【解决方案1】:

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

我修复它的方法是卸载 mpld3(我用 pip 安装的)并用 conda 重新安装它。 然后它起作用了。 使用 conda list 检查版本会为我提供与您所拥有的两个软件包相同的版本。 我记得读过一个人不应该同时使用 pip 和 conda 来管理 python 包。我总是忘记应用这条规则。

希望它能为你解决问题。

【讨论】:

  • 你好,Rcarl!除非有必要,否则我在使用 anaconda 时从未真正使用过任何 pip 安装,但是,由于您能够使某些东西正常工作,因此我将您的答案标记为正确,因为我已经放弃了 mpld3 并选择使用 Plotly。跨度>
猜你喜欢
  • 2019-01-12
  • 2019-12-07
  • 2022-12-21
  • 2021-12-09
  • 2019-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多