matplotlib与latex一起使用时无法解码utf8

2024-09-29 21:32:00 发布

您现在位置:Python中文网/ 问答频道 /正文

在ipython(python 2.7)中使用这个最小的示例:

from matplotlib import pylab
unic = u'\xb0'
unicen = unic.encode('utf-8')
plt.plot([1,2],[3,4])
plt.xlabel(r'$\Delta$ [%s]'%(unicen), size='xx-large')

我收到一条很长的错误消息,其结尾是:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 10: ordinal not in range(128)

如果我打印unic、unicen或str(unicen),一切正常,这意味着matplotlib似乎无法处理编码。str(unic)会导致相同的错误,但是统一编码('utf-8')确实在打印消息中处理了它。在

我已经开始使用添加-utf-8-和unichr(0xB0),然后尝试了我找到的所有其他解决方案。事实上,统一编码另一个解决方案()失败了。我做错什么了?在

----------------------------------------编辑-----------------------------------

下面的答案是解决我上面的问题,但是当我尝试使用latex时会出现同样的错误,因此latex和matplotlib似乎不能正常工作。在

下面是导致此错误的简单脚本(已根据以下建议更正):

^{pr2}$

Tags: infromimport示例编码matplotlib错误ipython
1条回答
网友
1楼 · 发布于 2024-09-29 21:32:00

将传递给xlabel的字符串也定义为unicode:

 #   coding: utf-8  

from matplotlib import pylab
unicen = u'\xb0'
plt.plot([1,2],[3,4])
plt.xlabel(u'$\Delta$ [%s]'%(unicen), size='xx-large')

输出:

enter image description here

相关问题 更多 >

    热门问题