0
我有以下代码,当有标签有unicode字符串,注释失败抛出错误,我该如何解决?在Matplotlib注释中的Unicode字符串
from matplotlib import pyplot as plt
import numpy as Math
X = Math.genfromtxt(inputFile,autostrip=True,comments=None,dtype=Math.float64,usecols=(range(1,dim+1)))
labels = Math.genfromtxt(inputFile,autostrip=True,comments=None,dtype='str',usecols=(0))
Y = some_function(X, 2, 50, 20.0);
fig = plt.figure()
ax = fig.add_subplot(111)
plt.scatter(Y[:,0],Y[:,1])
for l,x,y in zip(labels,Y[:,0],Y[:,1]):
ax.annotate('(%s)' %l, xy=(x,y), textcoords='offset points')
plt.grid()
plt.show()
Error :
Traceback (most recent call last):
ax.annotate('(%s)' %unicode(l), xy=(x,y), textcoords='offset points')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 4: ordinal not in range(128)
谢谢!第一个选项适用于我,但第二个选项不起作用 – Lanc 2015-02-11 16:54:20
当你说它“不起作用”时,你能更具体吗?错误发生在'genfromtxt'还是'annotate'?如果你能显示你的'inputFile'在你的问题中看起来像什么会很有帮助。 – 2015-02-11 16:59:27
我想出了问题 - 有必要将转换器参数传递给'genfromtxt',它将输入字符串解码为unicode。我已经更新了我的答案以包含此内容。 – 2015-02-11 17:31:23