Linux環境matplotlib出力画像の中国語フォント表示問題解決

1461 ワード

実験棟Python個人プロジェクトにおけるデータ解析フロントエンドで示された1つのスキームは,フロントエンド要求時にバックエンドがmatplotlibを用いて動的に生成するために必要な画像をフロントエンドに返すことであり,matplotlibはデフォルトでは中国語フォント表示をサポートしていないため,中国語に遭遇した場合に表示できない.中国語フォントファイルをインポートすれば、この問題を解決できます.まず、matplotlibのリソースファイルパスを検索し、次の文を使用します.
import matplotlib
print(matplotlib.matplotlib_fname())

出力結果
/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc

これはmatplotlibにロードされたリソースファイルで、フォントファイルは/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttfのパスの下に保存されており、この場所でフォントをダウンロードすることができます(https://github.com/dolbydu/font)など、例えば、マイクロスフェアブラック-Microsoft Yahei.ttf、ブラック-SimHei.ttf、楷書-STKaiti.TTFなど、ダウンロードしたフォントファイルをttfパスの下に保存してmatplotlibrcファイルを修正し、font.familyファイルを検索する
 font.family         : sans-serif

この行のコメントは削除されます
font.sans-serif     :STKaiti, SimHei, Microsoft YaHei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

この行の注釈は削除され、後の値の前に追加された中国語フォントファイルが追加され、matplotlibのデフォルトのsans-serif font-familyが楷書表示フォントを優先的に選択し、中国語を表示できます.
最後にmatplotlibの生成キャッシュファイルを削除する必要があります
rm -rf ~/.cache/matplotlib

これで中国語フォントの表示ができます.