我正在使用matplotlib
进行散点图,并尝试使用mpld3
在HTML中绘制它。转换为dict时figure
会生成一个属性edgewidths
,其值类型为array 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属性,当漂亮的打印字典
{'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
使用的依赖关系