Я пытаюсь использовать mpld3 для рендеринга стекового графика и сталкиваюсь с проблемой, когда fig_to_html пытается сериализоваться.Похоже, что он сталкивается с проблемой с NumPy, описанной здесь:
Массив NumPy не поддерживает сериализацию в формате JSON
Traceback (последний вызов был последним): File "main.py ", строка 32, в файле mpld3.show ()" /usr/local/lib/python3.6/site-packages/mpld3/_display.py ", строка 358, в шоу html = fig_to_html (fig, ** kwargs) Файл "/usr/local/lib/python3.6/site-packages/mpld3/_display.py", строка 251, в fig_to_html figure_json = json.dumps (figure_json, cls = NumpyEncoder), файл "/ usr /local / Cellar / python / 3.6.5 / Frameworks / Python.framework / Versions / 3.6 / lib / python3.6 / json / init .py ", строка 238, в дампах ** кВт) .encode(obj) Файл "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/encoder.py", строка 199, в кодировании chunks = self.Файл iterencode (o, _one_shot = True) "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/encoder.py", строка 257, витератор возвращение _iterencode (o, 0) файл "/ usr / local / lib / python3.6 / site-packages / mpld3 / _display.py ", строка 138, по умолчанию возвращает json.JSONEncoder.default (self, obj) файл" /usr/local/Cellar/python/3.6.5/Frameworks/Python.Framework / Versions / 3.6 / lib / python3.6 / json / encoder.py ", строка 180, по умолчанию o. class . name ) TypeError: Объект типа 'ndarray'не поддерживает сериализацию в формате JSON
Вот мой код для печати;plt.show () работает нормально.Это только кажется, что проблема со стековым графиком, обычный график в порядке.
# get x,y,labels
# do plotting
fig, (ax1, ax2) = plt.subplots(2, 1)
#fig, (ax1) = plt.subplots(1, 1)
for yval in range(len(y)):
ax1.plot(x, y[yval], label=labels[yval])
ax1.legend(loc='upper left')
ax1.ticklabel_format(useOffset=False)
ax2.stackplot(x, y, labels=labels)
ax2.legend(loc='upper left')
ax2.ticklabel_format(useOffset=False)
#plt.show()
mpld3.show()
Любая помощь приветствуется.