2

これは非常に簡単なことですが、フォーラムのどこにも答えが見つからないようです。基本的な問題は次のとおりです。

次の形式の 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 表示テキストは、すべてのコード ポイントが 128 未満であるか、Unicode 文字列を使用する必要があります

明らかに問題は、度記号としての \xb0C です。シンボルをユニコード文字列に置き換えようとしましたが、何もしません。この文字列を変更して、注釈に度記号を含めるにはどうすればよいですか?

編集:質問を少し絞り込みました。文字列のエンコーディングを伝えるにはどうすればよいですか? これは非常に基本的な質問ですが、私はまだ答えを見つけることができません (これはよくあることです)。適切なドキュメントへのリンクが役立ちます。

4

1 に答える 1