macでMatplotlib/Seabornの文字化けを解消する方法

macでMatplotlib/Seabornの文字化けを解消する方法

# macでMatplotlib/Seabornを日本語化する方法

こんにちわ、Phillipです。

今回は、Seabornでグラフをプロットする時に凡例などに使用していた日本語が文字化けしてしまい Sebornを日本語化が必要になったので、この方法を記事にまとめます。 ちなみに文字化けした日本語は全部四角(□)として表示されました。

この記事の執筆時期として、2021年の9月となっていますが、 Seabornの日本語化で調べるとリンク切れしている記事やmacではうまく行かない方法の記事が多かったので、備忘のための含め記事にします。

この記事はmacユーザー向け、使用するフォントはIPAexフォントになっています。

# 開発環境

使用しているmacの環境です。

  • MacBookPro 2019 16inch
  • macOS Catalina 10.15.7
  • Python 3.8.5
  • エディタとしてjupyter notebookを使用


# 日本語化の流れ

日本語化の流れは以下のような感じ。

  1. IPAexフォントのインストール
  2. Seabornの設定ファイルの変更
  3. キャッシュの消去
  4. jupyter notebookの再起動

それぞれ1つずつみていきます。

# 1. IPAexフォントのインストール

まずは、IPAexフォントをダウンロードするのですが、他の記事によってはリンク切れしていたので、2021年9月時点の最新版は以下となります。

https://moji.or.jp/ipafont/ipafontdownload/

リンクからIPAexフォントのVer.004.01をダウンロードしてください。

ダウンロードは完了したら以下の手順にてインストールを行います。 インストール方法は、上記の文字情報技術促進協議会のインストール方法のページから引用させていただいています。
引用:https://moji.or.jp/ipafont/installation/

  • ダウンロードした圧縮ファイルを解凍ソフトで任意の場所に解凍してください。

  • Mac OS Xには複数のフォントフォルダがありますが、すべてのユーザが利用可能なフォントをインストールするためのフォルダは、[Mac OS X]のハードディスク-「/Library/Fonts 」フォルダ(ローカルディレクトリ)です。通常フォントを追加インストールする場合には、このフォルダが対象となります。(このフォルダに対するフォントのインストールと削除は管理者権限を持つユーザにのみ許可されていますので、管理者権限でログインしてください。)

  • HDを開き、「Library」をダブルクリック、続いて「Fonts」をダブルクリックします。

  • 現在、インストールされているフォントが表示されます。

  • 所望の「IPAフォント」を解凍した場所から選んで「/Library/Fonts」フォルダにコピー&ペーストします。(ちなみに、「~/Library/Fonts(ユーザのディレクトリ」にも「Fonts」フォルダは存在します。ここは、各ユーザのフォントをインストールするためのフォルダです。検索順位は最も高くなりますが、所有するユーザ以外はそのホームフォルダを利用できず、フォントをインストール・削除することも出来ません。)

これにてフォントインストールは完了です。

# 2. Seabornの設定ファイルの変更

インストールしたフォントファイルをSeabornでも扱えるよう、設定ファイルを変更します。

まずは、以下のコードを実行。 jupyter notebook上の実行でも問題ありません。
これにより、設定ファイルの場所を確認できます。

import matplotlib as mpl
mpl.matplotlib_fname()

'/Users/user name/opt/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc'

このディレクトリにある、matplotlibrcというファイルを任意のテキストエディタで開き、IPAexGothicをフォントファミリーに追加してください。

- #font.family:  sans-serif
font.family : IPAexGothic
#font.style:   normal
#font.variant: normal
#font.weight:  normal
#font.stretch: normal
#font.size:    10.0

設定保存し、以下のコードを実行しフォントマネジャーを再構築します。

mpl.font_manager._rebuild()

# 3. キャッシュの消去

念のため、以下の3つのコマンドをterminalで実行。
キャッシュを実行しておきます。

rm -rf ~/.matplotlib/* 
rm -rf ~/.cache/.matplotlib/*

以上で作業は完了です。

# フォントの指定方法

余談ですが、pythonコード上からのフォントの設定方法は以下となります。
事前に読み込むライブラリはこんな感じです。

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import pandas as pd
import seaborn as sns
import csv
import pprint

%matplotlib inline

フォントの指定はこのようにできます。

FONT_NAME = 'IPAexGothic'
sns.set(font=FONT_NAME)

あとは、MatplotlibやSeabornで適宜プロットしてあげるだけです。


# 終わりに

無事に日本語化できたところで今回の記事はここまでとします。
最初にプロット結果が文字化けしたときは焦りましたがなんとかなりそうです。

また、この記事が皆様の一助になれば幸いです。

では!

デジタル分野やビジネス関連で学んだことを記事にしています。
Read moreやTagから他記事を検索できますので合わせてどうぞ😊

Philipp
Read more