Skip to content

ciffelia/matplotlib-fontja

 
 

Repository files navigation

matplotlib-fontja

CI status PyPI project conda-forge

matplotlibを日本語表示に対応させます。

uehara1414さんのjapanize-matplotlibをフォークし、Python 3.12以降でも動作するよう修正したものです。変更点の詳細についてはCHANGELOGをお読みください。

利用方法

matplotlibをimportした後、matplotlib_fontjaをimportします。

import matplotlib.pyplot as plt
import matplotlib_fontja

plt.plot([1, 2, 3, 4])
plt.xlabel('簡単なグラフ')
plt.show()

demo

インストール

# pipを使う場合
pip install matplotlib-fontja

# uvを使う場合
uv add matplotlib-fontja

# Ryeを使う場合
rye add matplotlib-fontja

# Pipenvを使う場合
pipenv install matplotlib-fontja

# Poetryを使う場合
poetry add matplotlib-fontja

# Condaを使う場合
conda install conda-forge::matplotlib-fontja

動作確認環境

以下のPythonとMatplotlibのバージョンの組み合わせで動作を確認しています。

  • Python 3.7: Matplotlib 3.0 - 3.5
  • Python 3.8: Matplotlib 3.3 - 3.7
  • Python 3.9: Matplotlib 3.3 - 3.9
  • Python 3.10: Matplotlib 3.3 - 3.10
  • Python 3.11: Matplotlib 3.3 - 3.10
  • Python 3.12: Matplotlib 3.5 - 3.10
  • Python 3.13: Matplotlib 3.5 - 3.10

利用フォント

IPAexゴシック (Ver.004.01) を利用しています。 利用にあたってはIPAフォントライセンスv1.0に同意してください。

FAQ

import matplotlib_fontjaしたのに日本語が表示されません

import matplotlib_fontjaしてからグラフを描画するまでにフォントの設定が変わる処理が入っている可能性があります。

例えば、seabornを使用しているとsns.set_theme()などでフォントがseabornのデフォルトに上書きされてしまいます。

以下のように、フォント上書き後にmatplotlib_fontja.japanize()を実行してください。

sns.set_theme()
matplotlib_fontja.japanize()

seabornの場合は、sns.set_theme(font="IPAexGothic")としてIPAexGothicを使用するよう設定することもできます。

import matplotlib_fontjaに対してリンターの警告(F401)が出ます/フォーマッターに消されてしまいます

importしたmatplotlib_fontjaを使用していないため、不要なimportと誤判定されています。以下のようにnoqaで無効化してください。

import matplotlib_fontja  # noqa: F401

あるいは、matplotlib_fontja.japanize()を使用すれば未使用と判定されません。無意味な実行になりますが、import直後などに追加して警告を消すこともできます。

import matplotlib_fontja

matplotlib_fontja.japanize()

IPAexゴシック以外のフォントを使いたいです

matplotlibの標準機能で任意のフォントを使用できます。matplotlib-fontjaは不要です。以下はNoto Sans Japaneseを使う例です。

import matplotlib.font_manager
import matplotlib.pyplot as plt

# フォントファイルを読み込み
matplotlib.font_manager.fontManager.addfont(
    "/path/to/NotoSansJP-Regular.ttf"
)

# 読み込んだフォントを使用するよう設定
matplotlib.rc("font", family="Noto Sans JP")

plt.plot([1, 2, 3, 4])
plt.xlabel('簡単なグラフ')
plt.show()

About

install & import するだけで matplotlib を日本語表示対応させる

Resources

License

Stars

Watchers

Forks

Languages

  • Python 100.0%