Matplotlib プロットのテキストスタイルをカスタマイズする

Beginner

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

はじめに

この実験では、辞書を使って Matplotlib のプロット内のテキストとラベルのスタイルを制御する方法を学びます。オプションの辞書を作成することで、複数のテキストオブジェクトとラベルにまたがってパラメータを共有できます。これにより、プロット内のテキストのフォントファミリー、色、太さ、サイズを簡単にカスタマイズできるようになります。

VM のヒント

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

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

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

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

このチュートリアルで必要なライブラリをインポートして始めましょう。Matplotlib と NumPy を使用します。

import matplotlib.pyplot as plt
import numpy as np

フォント辞書を定義する

次に、テキストとラベルのスタイルオプションを含むフォント辞書を定義します。この例では、フォントファミリーを「serif」、色を「darkred」、太さを「normal」、サイズを 16 に設定します。

font = {'family': 'serif',
        'color':  'darkred',
        'weight': 'normal',
        'size': 16,
        }

プロットを作成する

さて、プロットを作成しましょう。NumPy を使ってデータを生成し、減衰する指数関数の減衰曲線を描画します。

x = np.linspace(0.0, 5.0, 100)
y = np.cos(2*np.pi*x) * np.exp(-x)

plt.plot(x, y, 'k')

タイトルをカスタマイズする

先ほど定義したフォント辞書を使って、プロットのタイトルをカスタマイズできます。title() 関数の fontdict パラメータを、私たちのフォント辞書に設定します。

plt.title('Damped Exponential Decay', fontdict=font)

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

text() 関数を使って、プロットにテキストを追加できます。この例では、フォント辞書を使ってスタイルをカスタマイズしながら、LaTeX 式をプロットに追加します。

plt.text(2, 0.65, r'$\cos(2 \pi t) \exp(-t)$', fontdict=font)

軸ラベルをカスタマイズする

同じくフォント辞書を使って、プロットの軸ラベルをカスタマイズできます。xlabel() 関数と ylabel() 関数の fontdict パラメータを、私たちのフォント辞書に設定します。

plt.xlabel('Time (s)', fontdict=font)
plt.ylabel('Voltage (mV)', fontdict=font)

間隔を調整する

最後に、ylabel が切り取られないように、プロットの間隔を調整できます。左余白を調整するために subplots_adjust() 関数を使います。

plt.subplots_adjust(left=0.15)

まとめ

この実験では、辞書を使って Matplotlib のプロット内のテキストとラベルのスタイルを制御する方法を学びました。フォント辞書を作成することで、プロット内のテキストのフォントファミリー、色、太さ、サイズを簡単にカスタマイズできます。この手法を使って、プロットのタイトル、テキスト、軸ラベルをカスタマイズし、ylabel の切り取りを防ぐために間隔を調整しました。