はじめに
この実験では、Matplotlib ライブラリを使用して、mathtext と usetex に対して計算されたテキストベースラインを比較します。2 つのサブプロットを含むプロットを作成します。1 つは mathtext で、もう 1 つは usetex です。各サブプロットには、異なるスタイルと位置の 4 つのテスト文字列を表示します。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
グラフを作成するには、matplotlib.pyplot ライブラリをインポートする必要があります。
import matplotlib.pyplot as plt
Matplotlib のフォントを設定する
Matplotlib のテキストに使用するフォントを設定する必要があります。Computer Modern フォントを使用し、Matplotlib の既定のフォントとして設定します。
plt.rcParams.update({"mathtext.fontset": "cm", "mathtext.rm": "serif"})
サブプロットを作成する
mathtext を使用したサブプロットと usetex を使用したサブプロットの 2 つを含む図を作成します。サブプロットを作成するには subplots() メソッドを使用します。
fig, axs = plt.subplots(1, 2, figsize=(2 * 3, 6.5))
グラフにテスト文字列を追加する
各サブプロットに 4 つのテスト文字列を追加します。それぞれ異なるスタイルと位置になります。text() メソッドを使用して、サブプロットにテキストを追加します。
test_strings = ["lg", r"$\frac{1}{2}\pi$", r"$p^{3^A}$", r"$p_{3_2}$"]
for ax, usetex in zip(axs, [False, True]):
ax.axvline(0, color="r")
for i, s in enumerate(test_strings):
ax.axhline(i, color="r")
ax.text(0., 3 - i, s,
usetex=usetex,
verticalalignment="baseline",
size=50,
bbox=dict(pad=0, ec="k", fc="none"))
グラフの範囲とラベルを設定する
望ましい出力に合わせて、グラフの範囲とラベルを設定します。
for ax in axs:
ax.set(xlim=(-0.1, 1.1), ylim=(-.8, 3.9), xticks=[], yticks=[])
ax.set_title(f"usetex={ax.usetex}\n")
グラフを表示する
show() メソッドを使用してグラフを表示します。
plt.show()
まとめ
この実験では、Matplotlib を使って mathtext と usetex に対して計算されるテキストのベースラインを比較する方法を学びました。mathtext を使用したサブプロットと usetex を使用したサブプロットの 2 つを含む図を作成しました。各サブプロットに 4 つのテスト文字列を追加し、それぞれ異なるスタイルと位置にしました。最後に、テキストのベースラインを比較するためにグラフを表示しました。