以前にjapanize-matplotlibはpython 3.12ではエラーが出る→matplotlib-fontjaが代替 という日記を書いて,多分これが使われるんだろうなぁと思っていたのですが, japanize-matplotlib-jlite,japanize-matplotlib-modern等のパッケージが登録されているようです。
ソースの中身等は似かよっているのでどれを使っても似たような結果になるかもしれませんが,私の個人的な考えとしては以下の理由により私達が利用するにはmatplotlib-fontjaが適切だと考えます。
- 明確にjapanize-matplotlibからフォークしていて,ソースをどう変更したかの履歴が判別しやすい
- プロジェクト内でCIを実行していて,
pythonとmatplotlib各バージョンの組み合わせのテスト結果が分かる - IPAフォントのパージョンが更新されている
- conda-forgeに登録されている
1. matplotlib-fontjaのみ明確にjapanize-matplotlibからフォークしている
Readmeでjapanize-matplotlibのフォークと明言していて,githubの機能でフォークされているので,
元のパッケージとの関係が分かりやすいです。
一方,japanize-matplotlib-jliteはBased on japanize-matplotlibと書かれているものの,
この日記を書いた2025年7月11日時点では,ライセンス表記に原作者の名前が無いので,MIT Licence違反の状態だと考えられます。
また,japanize-matplotlib-modernはライセンス表記に 原作者の名前があるものの,readmeにjapanize-matplotlibのフォークとは一言も書かれていません。
githubのプロジェクト名がjapanize-matlibplot-modernというのも気持ちが悪いです。ReadmeにもTypoがあり,
不必要な怪しさが見受けられます。
2. matplotlib-fontjaのみプロジェクト内でCIを動かしていて,各バージョンの組み合わせのテスト結果が記録されている
これは,業務等で使う時や,他のパッケージとの比較して採用を決定する時の理由に非常に大きいです。 自分でテストやるの面倒ですもんね。
3. matplotlib-fontjaのみIPAフォントのパージョンが更新されている
理由としては弱いですが,他のパッケージよりはベターといえるでしょう。
4. matplotlib-fontjaのみconda-forgeに登録されている
condaを使う時はなるべくpipのパッケージを使わず管理するのが一般的だと思うので,
condaを使う時はmatplotlib-fontja一択となるでしょう。
さいごに
以上非常に理屈っぽいですが,普段pythonを使わない人間だから好き放題言ってみた考察になります。
PyPiは非常に多くのパッケージが乱立(Julia言語も似た点がありますが…) していてそのパッケージを採用するかどうかの選択や,その理由付け等も 業務で使う場合は調査が必要です。
今回はクリティカルなパッケージではない(matplotlibの機能だけでも日本語は利用可能)なので,大して大きな影響はなく 熟練者には当たり前の内容ですが,初心者に対してはパッケージをどう選択するかの考え方に関する 参考情報になったかもしれません。