MatplotlibのデフォルトのフォントをHelvetica Neueに変更しようとしています。私のMacでEPD/Canopyを使用していると、しばらく前にすべてがうまくいきました。
今すぐubuntuで同じことをしようとしてもうまくいきません。
これは私がやったことです:
Helvetica Neueをインストール
$ fc-match 'Helvetica Neue':Light
HelveticaNeue-Light.otf: "Helvetica Neue" "細體"
Odt/dfontをttfに変換しました:
fondu -show HelveticaNeue.dfont
matplotlibrcを変更しました
$ cat ~/.config/matplotlib/matplotlibrc
...
font.family: Helvetica Neue
私も試しました:
font.family: sans-serif
font.sans-serif: Helvetica Neue
フォントキャッシュを削除しました
rm ~/.config/matplotlib/fontList.cache
しかし、これらの手順はどれも私にとってはうまくいきません。
$ python -c 'from matplotlib import pyplot as plt; plt.plot(1); plt.savefig("/tmp/test.png")'
/usr/local/lib/python2.7/dist-packages/matplotlib-1.3.0-py2.7-linux-x86_64.Egg/matplotlib/font_manager.py:1236:
UserWarning: findfont: Font family ['Helvetica Neue'] not found. Falling back to Bitstream Vera Sans
(prop.get_family()、self.defaultFamily [fontext]))
バージョンは1.3.0です
$ python -c 'import matplotlib; print matplotlib.__version__'
1.3.0
フォントを~/.config/matplotlib/fonts/ttf
に移動しようとしましたが、うまくいきませんでした。
編集:提案されたように、特定のテキストに対して特定のフォントを選択しようとしました。
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager
path = '/home/<myusername>/.fonts/HelveticaNeue.ttf'
prop = font_manager.FontProperties(fname=path)
prop.set_weight = 'light'
mpl.rcParams['font.family'] = prop.get_name()
mpl.rcParams['font.weight'] = 'light'
fig, ax = plt.subplots()
ax.set_title('Text in a cool font', fontproperties=prop, size=40)
plt.savefig('/tmp/test2.png')
しかし、違いはありません。
/usr/local/lib/python2.7/dist-packages/matplotlib-1.3.0-py2.7-linux-x86_64.Egg/matplotlib/font_manager.py:1236:
UserWarning: findfont: Font family ['Helvetica Neue'] not found. Falling back to Bitstream Vera Sans
ただし、この問題はこのHelvetica/Helvetica Neueフォントでのみ発生するようです。 (prop.get_family()、self.defaultFamily [fontext]))
これによりフォントが永久に変更されることはありませんが、試してみる価値はあります
matplotlib.rc('font', family='sans-serif')
matplotlib.rc('font', serif='Helvetica Neue')
matplotlib.rc('text', usetex='false')
matplotlib.rcParams.update({'font.size': 22})
Ubuntu 14.04 LTS
フォントをアップロードする
Sudo cp NotoSansKR-Regular.otf /usr/share/fonts/
フォントのキャッシュを更新する
Sudo fc-cache -fv
フォントリストを確認できます
fc-list
Ipythonなどを再起動します。フォントリストを確認します。
[f.name for f in matplotlib.font_manager.fontManager.ttflist]
フォント名を取得します
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'Noto Sans Korean'
ドロー
plt.title(u'한글 제목')
plt.xlabel(u'한글 축 이름')
plt.plot(range(5))
キムはすでに動的ソリューションを導入しており、完全に機能します。また、静的で同じことを行う2つの方法があります。
まず、matplotlibのrcファイルに行を追加します。ファイルの検索と詳細設定の詳細については、 このページ を参照してください。
font.family : NanumGothic
2番目に、ipythonを使用している場合、フォント設定用のコマンドをインタラクティブシェルの構成ファイルに配置できます。通常、〜/ .ipython/somewhereの下にあるipython_config.pyという名前のファイルを見つけます。次に、リストにc.InteractiveShellApp.exec_linesという2行を追加します。
c.InteractiveShellApp.exec_lines = [
"import matplotlib as mpl",
"mpl.rcParams['font.family'] = 'NanumGothic'"
]
以前は、スクリプトがmatplotlibをインポートするときにフォントをロードするため、シェルスクリプトを実行する環境は常に動作します。
フォントキャッシュは、別の場所(.cache/matplotlib/fontList.cache)に表示されます。そして、私が実際にそれらの3つを異なる場所に何とかしていた前に:/
ホームディレクトリで検索してみてください。
find ~/ -name fontList.cache -exec rm {} \;