Matplotlib を使った目盛りラベルの書式設定

Beginner

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

はじめに

このチュートリアルの実験では、Python の Matplotlib ライブラリを使って目盛りラベルをフォーマットする方法を学びます。デフォルトの目盛りフォーマッタと、~.axes.Axes.ticklabel_formatを使った様々な設定について説明します。

VM のヒント

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

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題があった場合は、Labby にお問い合わせください。セッション終了後にフィードバックをお寄せください。すぐに問題を解決いたします。

必要なライブラリをインポートする

Python の Matplotlib ライブラリを使うには、Python 環境にインポートする必要があります。また、例としてのグラフにデータを生成するために NumPy ライブラリも使います。

import matplotlib.pyplot as plt
import numpy as np

例としてのグラフ用のデータを生成する

~.axes.Axes.ticklabel_formatを使ったさまざまな設定を示すために、3 つのグラフ用のデータを生成します。

x = np.arange(0, 1,.01)

## Plot 1
plot1_x = x * 1e5 + 1e10
plot1_y = x * 1e-10 + 1e-5

## Plot 2
plot2_x = x * 1e5
plot2_y = x * 1e-4

## Plot 3
plot3_x = -x * 1e5 - 1e10
plot3_y = -x * 1e-5 - 1e-10

例としてのグラフ用のサブプロットを作成する

例としてのグラフを表示するために、3×3 のサブプロットのグリッドを作成します。

fig, axs = plt.subplots(
    3, 3, figsize=(9, 9), layout="constrained", gridspec_kw={"hspace": 0.1})

サブプロットにデータをプロットする

手順 3 で作成したサブプロットに、生成したデータをプロットします。

for col in axs.T:
    col[0].plot(plot1_x, plot1_y)
    col[1].plot(plot2_x, plot2_y)
    col[2].plot(plot3_x, plot3_y)

目盛りラベルの書式設定を構成する

サブプロットの目盛りラベルの書式設定を構成します。最初のサブプロットはデフォルト設定を使用し、2 番目のサブプロットは数学的な式の見栄えの良い書式設定を使用し、3 番目のサブプロットはオフセット表記を使用しません。

## Subplot 1 (default settings)
axs[0, 0].set_title("default settings")

## Subplot 2 (useMathText=True)
for ax in axs[:, 1]:
    ax.ticklabel_format(useMathText=True)
axs[0, 1].set_title("useMathText=True")

## Subplot 3 (useOffset=False)
for ax in axs[:, 2]:
    ax.ticklabel_format(useOffset=False)
axs[0, 2].set_title("useOffset=False")

例としてのグラフを表示する

構成済みの目盛りラベルの書式設定付きで、例としてのグラフを表示します。

plt.rcParams.update({"axes.titleweight": "bold", "axes.titley": 1.1})
plt.show()

まとめ

このチュートリアルの実験では、Python の Matplotlib ライブラリを使って目盛りラベルを書式設定する方法を学びました。3 つの例としてのグラフ用のデータを生成し、各グラフの目盛りラベルの書式設定を構成しました。異なる目盛りラベルの書式設定の構成を視覚化するために、例としてのグラフを表示しました。