0
次のコードは、plt.show()
で正しいプロットを生成しますが、pdfまたはpngイメージに保存すると失敗します。matplotlib show unicodeのためにsavefigが失敗します
私は、同様の質問でさまざまな提案(コメント行参照)を試みましたが、どれもこのケースでは機能しません。 PNGファイルはユニコード文字をボックスとして表示し、pdfは単純にそれらを無視します。
##-*- coding: utf-8 -*-
#from matplotlib import rc
#rc('font', **font)
#rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
#rc('font',**{'family':'serif','serif':['Palatino']})
#rc('text', usetex=True)
import matplotlib.pyplot as plt
plt.figure()
plt.plot(range(10))
plt.xlabel(u"\u2736")
plt.ylabel(u'\u03c4')
plt.savefig('unicode.pdf')
plt.savefig('unicode.png')
#plt.show()
お礼をありがとうございます。 「DejaVu Sans」はMacには存在しません。私はそれをインストールしようとしましたが、何とか失敗しました。しかし、フォントをCalibriに変更すると、\ tauシンボルが機能しました。あなたが言ったように、それは間違いなくフォントの問題です。おそらくあなたはあなたの答えに他のフォントオプションを加えたり、フォントに関する情報を得るための方法を追加することができます。例えば 'import matplotlib.font_manager as fm' ' fm.findSystemFonts(fontpaths = None、fontext = 'ttf') ' ' set([ fm.fontManager.ttflistのfのf.name)) ' – Armut
ああ、申し訳ありませんが、私はMacでチェックしませんでした。ユニコードをサポートするフォントに関するリソースが見つかりましたので、私は答えを更新します – cnosam