Как исправить объект типа ndarray не может быть JSON сериализуем при использовании mpld3? - PullRequest
0 голосов
/ 29 мая 2020

Python mpld3 '.show ()' Выдает мне эту ошибку «Объект типа ndarray не JSON сериализуемый»

Я знаю, что здесь есть много дубликатов этого вопроса, однако я не смог найти недавний. Кажется, это обычная проблема с mpld3.

Использование Matplotlib версии 3.1.3

Использование mpld3 версии 0.3

Я также использую Anaconda и сделал обновление conda - -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()

Есть идеи по быстрому исправлению? Или, если бы кто-то более знающий, чем я, мог бы опубликовать это где-нибудь, где его можно решить соответствующим образом? сам. Это никоим образом не отражает того, что я пытаюсь сделать [простым способом показать фигуру matplotlib на веб-странице]. Я знаю, что matplotlib использует numpy внутри, поэтому должна быть некоторая проблема с mpld3, анализирующей словарь свойств фигуры.

1 Ответ

0 голосов
/ 08 июня 2020

У меня была та же проблема, что и у вас, и я смог воспроизвести ваш код. Я просто тестировал fre sh установленный mpld3, когда столкнулся с этой ошибкой.

Чтобы исправить это, я удалил mpld3 (который я установил с помощью pip) и переустановил с помощью conda. Тогда это сработало. Проверка версии с помощью списка conda дает мне те же версии обоих пакетов, что и у вас. Я помню, как читал, что не следует играть одновременно с pip и conda для управления пакетами python. Я всегда забываю применить это правило.

Надеюсь, это исправит для вас.

...