我正在使用matplotlib
并尝试使用mpld3
在 HTML 中绘制它来绘制散点图。figure
转换为 dict 时,会生成一个edgewidths
具有值类型数组的属性,该数组具有单个值元素,无法1.
序列json.dumps
化为 JSON 类型。我不确定matplotlib
axes
我需要更改哪个属性来解决此问题,或者这些库中的任何一个是否需要设置一些初始化属性?也是mpld3
呈现为 HTML 的最佳后端吗?
示例代码
fig, ax = pyplot.subplots()
ax.scatter(a, b)
fig_json = json.dumps(mpld3.fig_to_dict(fig), skipkeys=True)
漂亮打印dict时有问题的dict属性
{'axes': [{'axes': [{'fontsize': 10.0,
'grid': {'alpha': 1.0,
'color': '#D3D3D3',
...
'axesbgalpha': None,
...
'collections': [{'alphas': [None],
...
'edgewidths': array([1.]), <--- This property
例外
fig_json = json.dumps(mpld3.fig_to_dict(fig), skipkeys=True)
File "/usr/lib/python3.5/json/__init__.py", line 237, in dumps
**kw).encode(obj)
File "/usr/lib/python3.5/json/encoder.py", line 198, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.5/json/encoder.py", line 256, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.5/json/encoder.py", line 179, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: array([1.]) is not JSON serializable
使用的依赖项
- matplotlib (2.1.2)
- mpld3 (0.3)