使用带有奇怪符号的字符串注释图形

时间:2013-03-06 14:59:14

标签: python unicode numpy matplotlib

这应该是非常简单的事情,但我似乎无法在任何地方找到答案。这是基本问题:

我有一组格式为

的CSV文件

“X,Temp°C \ n1,25 \ n ......”

注意度数符号,这将是我问题的核心。我正在使用numpy和matplotlib,我使用以下方法导入此文件:

GT_kwargs = dict(delimiter=',',names=True)
data_array = numpy.genfromtxt(filenm, **GT_kwargs)

这正确地产生了一个带有dtypes的numpy数组:

[('X', '<f8'), ('Temp_\xb0C', '<f8')]

到目前为止一切顺利。数据绘制得很好,当我想使用从标题中提取的名称来注释曲线时问题就出现了,特别是如果我尝试传递:

pyplot.annotate(data_array.dtype.names[1], xy=(1,1))

这引发:

ValueError:matplotlib显示文本必须包含所有代码点&lt; 128或使用Unicode字符串

显然问题是\ xb0C作为学位标志。我尝试用unicode字符串替换符号,但这没有任何作用。如何更改此字符串以使注释包含度数符号?

编辑:我已经缩小了我的问题。如何告诉字符串的编码?这是一个非常基本的问题,但我仍然找不到答案(通常是这样的)。提供良好文档的链接会很有帮助。

1 个答案:

答案 0 :(得分:1)

\xb0格式错误 utf-8 ,这就是问题所在。用\xb0替换\xc2\xb0允许 utf-8 正确编码字符串。