Matplotlibで利用可能なフォントファミリー(フォント名)の一覧を取得する方法
Matplotlibでシステムにインストールされているフォントファミリー(フォント名)の一覧を取得したい場合、matplotlib.font_managerモジュールが提供するフォントマネージャーを活用することで簡単に実現できます。
具体的な手順は以下の通りです。
- フォントマネージャーの ttflist を反復処理し、各フォントの名前を出力します。ttflistはTrueTypeフォント(.ttf)の情報を管理しています。
- フォントマネージャーの afmlist を反復処理し、各フォントの名前を出力します。afmlistはAdobe Font Metrics形式(Type1フォントなど)の情報を管理しています。
これらのリストには、Matplotlibに同梱されているフォントに加えて、OSにインストールされているフォントも含まれます。
コード例
import matplotlib.font_manager as fm
# TrueTypeフォントの一覧からフォント名を取得
for f in fm.fontManager.ttflist:
print(f.name)
# AFM形式フォントの一覧からフォント名を取得
for f in fm.fontManager.afmlist:
print(f.name)出力結果
STIXNonUnicode STIXGeneral STIXSizeFiveSym cmr10 ... ... ... Nimbus Sans L Bitstream Charter Nimbus Sans L Nimbus Sans L
このように実行すると、環境で利用可能なすべてのフォント名が順に出力されます。なお、重複を排除してユニークなフォント名だけを確認したい場合は、set()を使って以下のようにまとめることもできます。
names = {f.name for f in fm.fontManager.ttflist}
print(sorted(names))取得したフォント名は、plt.rcParams['font.family']やグラフ描画時のfontname引数に指定することで、実際のプロットに反映できます。日本語を含むグラフを作成する際に、利用可能な日本語対応フォントを探す際にもこの方法が役立ちます。
-
MatplotlibでLaTeX出力と同じフォントを表示する方法
MatplotlibのグラフでLaTeX風フォントを使用する方法Matplotlibでグラフを作成する際、軸ラベルやタイトルをLaTeXと同じ数式フォントで表示したいケースは多くあります。LaTeX形式($...$ で囲まれた記法)を使えば、数式を美しく描画できます。ここでは、sin関数のカーブをLaTeX表記でプロットし、タイトルにカスタムフォントを適用する手順を紹介します。実装の手順NumPyを使って x 軸のデータポイントを作成します。y = sin(x) に基づいて y 軸のデータポイントを作成します。LaTeX表記(r$\sin (x)$)を使用して、x と y の曲線をプロットしま
-
Matplotlib PyplotでフィギュアのAxes(軸)リストを取得する方法
MatplotlibのPyplotを使ってフィギュアに含まれるAxes(軸)のリストを取得するには、まずフィギュアを作成し、その後get_axes()メソッドを呼び出すことで、フィギュア内のすべてのAxesオブジェクトを取得できます。取得したAxesに対して、ラベルの設定などの操作を行うことが可能です。手順NumPyを使ってデータ点 xs と ys を作成し、figure()メソッドで新しいフィギュア(または既存のフィギュア)を生成します。add_subplot()メソッドを使用して、サブプロット配置の一部としてフィギュアにAxesオブジェクトを追加します。ここでは nrows=1、ncols