カスタムフォントでプロットを作成する

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、PythonのMatplotlibライブラリを使ってカスタムフォントでプロットを作成する方法を学びます。また、プロットのフォントファミリをカスタマイズするためにLaTeXを使うことができるpgf.texsystemパラメータについても紹介します。

VMのヒント

VMの起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebookを使って練習しましょう。

時々、Jupyter Notebookが読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebookの制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labbyにお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

Matplotlibをインポートしてpgf.texsystemパラメータを設定する

まず、Matplotlibライブラリをインポートして、pgf.texsystemパラメータをpdflatexに設定する必要があります。このパラメータを使うと、LaTeXを使ってプロットのフォントファミリをカスタマイズできます。

import matplotlib.pyplot as plt

plt.rcParams.update({
    "pgf.texsystem": "pdflatex",
})

フォントファミリを定義する

次に、プロットで使用したいフォントファミリを定義する必要があります。この例では、cmbrightフォントファミリを使用します。

plt.rcParams.update({
    "pgf.texsystem": "pdflatex",
    "pgf.preamble": "\n".join([
         r"\usepackage[utf8x]{inputenc}",
         r"\usepackage[T1]{fontenc}",
         r"\usepackage{cmbright}",
    ]),
})

プロットを作成する

これで、plt.subplots()関数を使ってプロットを作成できます。この例では、単純な折れ線グラフを作成します。

fig, ax = plt.subplots(figsize=(4.5, 2.5))

ax.plot(range(5))

プロットにテキストを追加する

ax.text()関数を使って、プロットにテキストを追加できます。この例では、異なるフォントファミリでテキストを追加します。

ax.text(0.5, 3., "serif", family="serif")
ax.text(0.5, 2., "monospace", family="monospace")
ax.text(2.5, 2., "sans-serif", family="sans-serif")
ax.set_xlabel(r"µ is not $\mu$")

レイアウトを調整してプロットを保存する

最後に、それぞれfig.tight_layout()fig.savefig()関数を使って、プロットのレイアウトを調整してファイルに保存することができます。

fig.tight_layout(pad=.5)

fig.savefig("pgf_texsystem.pdf")
fig.savefig("pgf_texsystem.png")

まとめ

この実験では、PythonのMatplotlibライブラリを使ってカスタムフォントでプロットを作成する方法を学びました。pgf.texsystemパラメータを使ってプロットのフォントファミリを設定し、ax.text()関数を使って異なるフォントファミリでテキストを追加しました。また、プロットのレイアウトを調整してファイルに保存する方法も学びました。