Python
 Computer >> コンピューター >  >> プログラミング >> Python

mpl.rcParamsを使ってMatplotlibに.ttfファイルを読み込む方法

mpl.rcParamsを使用してMatplotlibに.ttf形式のフォントファイルを読み込むことで、独自のカスタムフォントでグラフを描画できます。以下の手順に従って実装しましょう。

.ttfファイルを読み込む手順

  • 図(figure)のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • 読み込みたい.ttfファイルへのパスを初期化します。
  • フォントプロパティを保存・操作するためのクラス(FontProperties)のインスタンスを取得します。
  • フォントプロパティに最も一致するフォント名を使って、font.familyを設定します。
  • 図とサブプロットを作成します。
  • 図にタイトルを設定します。
  • 最後にshow()メソッドを呼び出して、図を画面に表示します。

コード例

実際のコードは以下の通りです。ここでは例として、マラヤーラム語対応の「Karumbi」フォントを読み込んでいます。

from matplotlib import pyplot as plt, font_manager as fm

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

path = '/usr/share/fonts/truetype/malayalam/Karumbi.ttf'

fprop = fm.FontProperties(fname=path)

plt.rcParams['font.family'] = fprop.get_name()

fig, ax = plt.subplots()
ax.set_title('This is my title!', size=40)

plt.show()

コードのポイント解説

  • fm.FontProperties(fname=path):指定した.ttfファイルからフォントプロパティオブジェクトを生成します。
  • fprop.get_name():フォントファイル内に登録されている正式なフォント名を取得します。この名前をそのままfont.familyに渡すことで、Matplotlib全体のデフォルトフォントとして適用されます。
  • plt.rcParams["figure.autolayout"] = True:ラベルやタイトルが図の外にはみ出さないよう、レイアウトを自動調整します。

出力結果

mpl.rcParamsを使ってMatplotlibに.ttfファイルを読み込む方法

このように、mpl.rcParamsfont_managerを組み合わせることで、システムにインストールされていない独自の.ttfフォントでも簡単にMatplotlibのグラフへ反映させることができます。日本語フォントなど、デフォルトでは文字化けしてしまう特殊なフォントを利用したい場合にも、同じ手法が有効です。

  1. 【Python】Matplotlibで複素数をプロットする方法(アルガンド図)

    Matplotlibを使って複素数を可視化するには、複素数のデータセットを作成し、実部をx軸、虚部をy軸に対応させてプロットするのが一般的です。このように表現した図は「アルガンド図(Argand Diagram)」と呼ばれます。 手順 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。 ランダムな複素数データを作成します。 subplots()メソッドを使って、図とサブプロットのセットを生成します。 scatter()メソッドで各複素数を散布図としてプロットします。 show()メソッドを実行して図を表示します。 サンプルコード import numpy as np f

  2. MatplotlibでiPythonノートブックの図をファイルとして保存する方法

    iPythonノートブック上で作成した図(グラフ)を画像ファイルとして保存したい場合、Matplotlibの機能を使えば簡単に実現できます。ここでは、基本的な手順とサンプルコードを紹介します。 図をファイルに保存する手順 iPythonから図をファイルとして保存するには、以下の手順を実行します。 plt.figure() で新しい図を作成するか、既存の図をアクティブにします。 add_axes() メソッドを使って、図に axes(座標軸)を追加します。 プロットしたいデータ(リストなど)を plot() で描画します。 savefig() メソッドを使って、図をファイルとして保存します。