MatplotlibでLaTeX出力と同じフォントを表示する方法
MatplotlibのグラフでLaTeX風フォントを使用する方法
Matplotlibでグラフを作成する際、軸ラベルやタイトルをLaTeXと同じ数式フォントで表示したいケースは多くあります。LaTeX形式($...$ で囲まれた記法)を使えば、数式を美しく描画できます。ここでは、sin関数のカーブをLaTeX表記でプロットし、タイトルにカスタムフォントを適用する手順を紹介します。
実装の手順
- NumPyを使って x 軸のデータポイントを作成します。
- y = sin(x) に基づいて y 軸のデータポイントを作成します。
- LaTeX表記(r'$\sin (x)$')を使用して、x と y の曲線をプロットします。
- 凡例を有効にするには legend() メソッドを使用します。
- 図を表示するには show() メソッドを使用します。
サンプルコード
import numpy as np from matplotlib import pyplot as plt, font_manager as fm fprop = fm.FontProperties(fname='/usr/share/fonts/truetype/malayalam/Karumbi.ttf') plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(1, 10, 1000) y = np.sin(x) plt.plot(x, y, label=r'$\sin (x)$', c="red", lw=2) plt.title(label=r'$\sin (x)$', fontproperties=fprop) plt.show()
コードの解説
- fm.FontProperties(): フォントファイル(.ttf)へのパスを指定して、独自のフォントを読み込みます。環境に合わせてパスを変更してください。
- plt.rcParams: 図のサイズを 7.50 × 3.50 インチに設定し、レイアウトを自動調整しています。
- r'$\sin (x)$': 先頭に r を付けたraw文字列でLaTeX数式を記述すると、Matplotlibが数式として解釈し、LaTeXと同じような見た目で描画します。
出力結果
上記のコードを実行すると、赤い曲線で描かれた正弦波が表示され、タイトルには指定したフォントで「$\sin (x)$」というLaTeX形式の数式が反映されます。
-
matplotlibでカラーバー(Colorbar)の目盛りのフォントサイズを変更する方法
matplotlibでカラーバーの目盛りラベルのフォントサイズを変更したい場合、tick_params()メソッドを使うのが最も簡単です。ここでは、具体的な手順とサンプルコードを紹介します。カラーバーの目盛りサイズを変更する手順5×5のランダムなデータセットを作成します。imshow()メソッドを使い、データを2次元の正規ラスタ(画像)として表示します。スカラーマッピング可能なオブジェクト(画像)をもとに、カラーバーを作成します。フォントサイズを格納する変数を初期化し、カラーバーの目盛りサイズの変更に備えます。カラーバーの軸に対してtick_params()メソッドを呼び出し、labelsiz
-
Matplotlibで2つのヒストグラムのビン幅を揃える方法
Matplotlibで2つのヒストグラムを比較する際、ビン幅が異なると正確な比較ができません。そこで、データセット全体から共通のビン境界を計算することで、両方のヒストグラムのビン幅を揃えることができます。手順ランダムデータ a と、正規分布に基づくデータ b を作成します。共通のビン幅を定義するための変数 bins を初期化します。hist() メソッドを使って、a と共通ビンでヒストグラムを描画します。hist() メソッドを使って、b と同じ共通ビンでヒストグラムを描画します。図を表示するには show() メソッドを使用します。サンプルコードimport numpy as np from