在这里的小型IPython Notebook中遇到一个奇怪的错误:https://gist.github.com/goulu/ba518d1a0a5267c0d3f3
在方法repr_svg方法中为IPython Notebook生成svg图(2.7内核)
plt.legend()
savefig(output, format='svg')
生成内容
<!-- \xe2\x88\x925 -->
for&#34; -5&#34;在图例中,它通过IPython / Jupyter客户端
在JSON中导致UnicodeDecodeError错误在哪里?在我的代码中,在Matplotlib中还是在IPython中?
答案 0 :(得分:0)
您的数据似乎有一些不受支持的字符。你可以尝试
data= unicode(output.getvalue(), errors='replace')
或
data= unicode(output.getvalue(), errors='ignore')
unicode('\xe2\x88\x925',errors= 'ignore')
output:
u'5'
答案 1 :(得分:0)
通过在_repr_svg_方法的末尾添加.decode('utf-8')来解决:
def _repr_svg_(self):
fig, ax = plt.subplots()
ax.plot(self.x,self.y)
plt.legend()
from io import BytesIO
output = BytesIO()
fig.savefig(output, format='svg')
data=output.getvalue() # .encode('utf-8') doesn't change anything
plt.close(fig)
return data.decode('utf-8')
对不起噪音: - /