1
這應該是非常簡單的事情,但我似乎無法在任何地方找到答案。這裏的基本問題:使用奇怪的符號字符串註釋圖形
我有一組的形式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顯示文字必須包含所有代碼點< 128或使用Unicode字符串
顯然問題是\ xb0C作爲度符號。我試過用unicode字符串替換符號,但是什麼都不做。如何更改此字符串以使註釋包含學位符號?
編輯:我縮小了我的問題一點點。如何告訴字符串的編碼?這是一個非常基本的問題,但我仍然無法找到答案(這往往是如何的)。鏈接到良好的文檔將有所幫助。
你是如何嘗試使字符串unicode? – tacaswell 2013-03-06 15:06:48
問題的一部分是我是使用unicode的新手。我很難將字符串轉換爲unicode。 我已經嘗試了一堆愚蠢的東西,如unicode(字符串),所有拋出:UnicodeDecodeError:'ascii'編解碼器無法解碼位置3中的字節0xb0:序號不在範圍內(128) – 2013-03-06 15:18:18
我試圖轉換這個字符串(有些很愚蠢): 'code'string =「T \ xb0C」,tmp = unicode(string),tmp = unicode(string,encoding =「utf-8」),tmp = unicode(string,encoding =「utf-16」),tmp = unicode(string,encoding =「utf-32」) – 2013-03-06 15:44:02