Mac でアナコンダなしで matplotlib でグラフ描画する時の日本語を表示できるようにする。

matplotlib とは?

Wikipedia によると、

Matplotlib は、プログラミング言語 Python およびその科学計算用ライブラリ Numpy のためのグラフ描画ライブラリである。

https://ja.wikipedia.org/wiki/Matplotlib

です。

最近、データ分析 (データサイエンス) の勉強を始めたところです。

データサイエンスの勉強 = matplotlib を使ってグラフ描画をやることになったわけですが、pip で matplotlib をインストールしただけでは、グラフのタイトルや凡例に日本語を表示することができません。

この投稿では、MacBook Pro で matplotlib でグラフを描画する時、日本語を表示できるようにした方法 (日本語対応) を記録に残すことにします。

僕は MacBook Pro を使っていますが Anaconda (アナコンダ) は使っていない環境です。

↓ Udemy の【ゼロから始めるデータ分析】ビジネスケースで学ぶ Python データサイエンス入門 で matplotlib を使って学習しています。

日本語表示できず文字化けする

日本語対応がなされていないと、以下のような文字化けをおこします。

この画像は Jupyter Notebook で、matplotlib でグラフ描画したときのものです。グラフのタイトルに「グラフ」と表示したいのですが、文字化けしてしまっているのがわかります。

手順1:まず日本語のフォントを取ってきます。

日本語フォントは何でも良いみたいんなのですが、今回は IPA (独立行政法人情報処理推進機構) のウェブサイト から「IPAex ゴシック」というフォントをダウンロードすることにしました。

上記 IPAex フォント Ver.004.01 のところをクリックしたあと、次のページ ↓ で

IPAex ゴシック (Ver.004.01)、ipaexg00401.zip のところをクリックしてダウンロードしました。

手順2:ダウンロードしたフォントを格納するディレクトリを見つけてそこに置く。

使っている Python のヴァージョンを確認します。

僕が使っているバージョンは 3.7.6 (3.7 系) でした。

このヴァージョン情報を頭に入れたまま、mpl-data というキーワードを元に find コマンドを実行します。

/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data ディレクトリが見つかりました。

もう 1 つ mpl-data ディレクトリが見つかりましたが、それは python 2.7 系と思わえっるディレクトリだったので無視しました。

では、ダウンロードしたフォントを置くディレクトリまで移動していきます。

目的となるディレクトリは、/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf です。ここに、ダウンロードした IPAex ゴシックのフォントファイルを持ってきます。

IPAex ゴシックのフォントファイルは Downloads フォルダにダウンロードしてあったので、unzip コマンドで圧縮して、ipaexg.ttf ファイルだけ cp コマンドでコピーしました。

これで IPAex ゴシックのフォントを置くべき場所に置くことができました。

手順3:設定ファイル (matplotlibrc) を修正する。

2 つ上のディレクトリ /usr/local/lib/python3.7/site-packages/matplotlib/mpl-data に移動します。

そこに matplotlibrc というファイルがあり、これが matplotlib の設定ファイルです。

これを vi matplotlibrc で編集します。編集する前にファイルのバックアップをとりました。vi で編集した後 diff コマンドで差分を表示させると、

となりました。

手順4:フォントリストの json ファイルを修正する。

ホームディレクトリに .matplotlib ディレクトリがあるのでそこに移動します。

上記のように fontlist-v310.json という json ファイルがあります。これをコピーしておいてから編集します。僕は vi を使いました。

“ttflist”: [ と書かれた行をサーチし、その下に以下 { から } までの 10 行を追記します。

要は、ダウンロードして格納したフォントのファイルの定義をこのファイル (fontlist-v310.json) にも書いてやる必要があるのです。

vi で編集した後の diff 結果は以下の通り。

文字化けが直ったのを確認した!

直った! ( ・´ー・`)どや

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください