2016-11-14 10 views
2

シーボーンでユニコードテキストを使用したい。 (Python 2.7)シーボーン付きユニコードテキストを使用する

matplotlibでUnicodeテキストをタイルとして使用できます。例えば 、seabornするフォントプロパティのこの種を設定する方法

import matplotlib.pyplot as plt 
from matplotlib.font_manager import FontProperties 
fp = FontProperties(fname='/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf') 
text = u'bădărău' 
plt.plot([1,2,3,2], label=text) 
plt.legend(prop=fp) 

? は実際に、私は次の例の注釈としてUnicodeテキストを使用したい:

import seaborn as sns 
import numpy as np 
sns.heatmap(np.array([[1,2,3]]), annot=np.array([['a', 'b', 'c']]), fmt='') 
# want to use ă instead of a 

私はăを使用している場合は、私は次のエラー

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128) 
+1

この記事は役に立ちましたか?[Pragmatic Unicode](http://nedbatchelder.com/text/unipain.html)、SOベテランのNed Batchelderによって書かれています。 –

答えて

1

を取得Batchelderリンクを知って良いですが、あればあなたは現在、コードに渡されたものではなく、あなた自身の文字列を使ってプロットを作成しています。 matplotlib documentationは、ソースコードのUnicodeリテラルを使用する方法について説明します。

# -*- coding: utf-8 -*- 
from __future__ import unicode_literals 

import seaborn as sns 
from matplotlib.pyplot import show 
import numpy as np 

sns.set(font="Meiryo") 
sns.heatmap(np.array([[1,2,3]]), annot=np.array([['ë', 'bădărău', 'ê']]),fmt='') 
show() 

結果:

from matplotlib import font_manager 

font_paths = font_manager.findSystemFonts() 
font_objects = font_manager.createFontList(font_paths) 
font_names = [f.name for f in font_objects] 
print font_names 
:私は私のシステムにインストールされているもののうち、フォントを選んだ enter image description here

からanother SOまで。

関連する問題