这应该是一件非常简单的事情,但我似乎无法在任何地方的论坛中找到答案。这是基本问题:
我有一组格式为 CSV 文件:
"X,温度 °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 display text must have all code points < 128 or use Unicode strings
显然问题是 \xb0C 作为度数符号。我试过用 unicode 字符串替换符号,但这没有任何作用。如何更改此字符串以使注释包含度数符号?
编辑:我已经缩小了我的问题一点。如何判断字符串的编码?这是一个非常基本的问题,但我仍然找不到答案(通常是这样)。指向良好文档的链接会有所帮助。