2017-03-25 1 views
2

私はutf-8(ヒンディー語)の単語ベクトルを持ち、視覚化したいと思います。それはt-SNEを使っていて、matplotlibのアノテートメソッドを使って単語をプロットしています。matplotlibまたはseabornでのutf-8文字の印刷

​​

下の画像に実際の単語「के」、「है」の代わりにボックスが表示されます。ボックスの代わりに実際のUTF-8ワードを印刷するにはどうすればいいですか?

output image

+1

'#encodingを追加してください:で、UTF-8' pyファイルの先頭。 – Serenity

+1

これはmatplotlibの問題であり、Pythonの問題ではないので、 '#encoding:utf-8'は役に立ちません。 – ImportanceOfBeingErnest

+0

通常は、使用されているフォントが必要なコードポイントのグリフを定義していないことを意味します(つまり、エンコーディングの問題ではありません)。 devanagariをカバーするフォントを指定してみてください。 (私はそれをどうやって行うのか分かりませんが、Formatterオブジェクトなどを作成する必要があると思います)。 – lenz

答えて

1

あなたは組版のフォントを変更する必要があります。 標準フォントは、ご希望の文字をサポートしていません。 私はmatplotlibで発見されたトリック:Lohit Devanagariです。私はこれが唯一の可能性であるとは確信していません。これが最初に働いたのです。フォントを変更するには、この行を追加し、注釈を付ける前に

plt.rc('font', family='Lohit Devanagari') 

matplotlibのは、正しい文字をレンダリング:

output