結構手間取った。ソースコード内で、
font = {'family' : 'ibaraji'}
matplotlib.rc('font', **font)
とフォントを指定すればよいのだが、
※ ibarajiはイバラ字というフォント。
fub工房(fub-koubou.work/)からダウンロードした。
matplotlib.rc()を使っているので、import matplotlibの宣言も忘れずに。
matplotlibで.ttcフォントは使えない(未対応)。
.ttfならば使える。
※ .ttfはTrueTypeフォントで、標準。
.ttcはTrueTypeコレクション[フォント]で、複数のフォントが格納されている。
ところがWindowsだと.ttcばかり。
追) matplotlib 3.1.0から.ttcフォントが使えるようになった、とのこと。
.ttfはHG正楷書体、HG丸ゴシック、……。自由に使えるわけではない。
IPAex明朝、IPAexゴシックおよびIPAmj明朝フォントが.ttfで公開されているので、
情報処理推進機構 IPA(www.ipa.go.jp/)
追)文字情報技術促進協議会(moji.or.jp/)
IPAexフォント/IPAフォント(moji.or.jp/ipafont/)
IPAmj明朝フォント(mojikiban.ipa.go.jp/)
からダウンロードして(自由に)使うことができる。
フォントのファイル名は分かっても’family’に指定する英名が表示されないので困ったが、
(ユーザー名)/.matplotlibフォルダの
キャッシュファイル fontList.cache(やfontList.py3k.cache)から
- HG正楷書体 ⇒ HGSeikaishotaiPRO
- HG丸ゴシック ⇒ HGMaruGothicMPRO
- IPAex明朝 ⇒ IPAexMincho
- IPAexゴシック ⇒ IPAexGothic
- IPAmj明朝 ⇒ IPAmjMincho
など判明。
新しいフォントをインストールした後は(WindowsであればWindows/Fontsフォルダの中)、
.matplotlibフォルダのfontList.cache(やfontList.py3k.cache)
をいったん消してからmatplotlibを使うと上記キャッシュファイルが自動的に作られる。
消しておかないと新しいフォントが読み込まれない。
別の方法として既存の.ttcを.ttfへ変える(「分解」する)こともできる。
例えば、DF行書体やメイリオなどは.ttcで、そのままだとmatplotlibで使えないが、
transfonter(transfonter.org/) - Unpack TTC
というツールを使えば.ttcファイルを複数の.ttfファイルに「分解」できる。
試しに「分解」された.ttfファイルをWindows/Fontsフォルダへインストールして表示させてみた。
特に問題なく表示された。
ただ、DF行書体もメイリオも自由に使えるわけではないようで、
※ HGがつくフォントはリコー社製。
DFがつくフォントはダイナコムウェア社製ダイナフォント。
個人のサイトやブログで利用するぐらいならば大丈夫のようだが、ちょっと曖昧。
電子書籍の表紙に使う場合は、完全に商用利用。
フォントは自由に使えるかどうか、事前にチェックしておくことが重要。
(追記)
WinPythonの場合、上記方法でうまくいかなかった。
も同じ。
matplotlibrc(設定ファイル)の###FONTの下に
font.family : IPAexGothic
と記しておけば日本語表示になる。
IPAexGothicの部分は使いたいフォント名。
ただし、matplotlibrc(設定ファイル)は、
(ユーザー名)/.matplotlibフォルダの中のファイルではなく、
WinPythonフォルダの中のファイル。
……/python-○○○/Lib/site-packages/matplotlib/mpl-dataの中。
Linuxの場合も同じ。