Matplotlibでは、描画したプロットにテキストや矢印などの注釈を加えることができる。

注釈やテキストを加えるため、text、annotateなどの関数が用意されているので、今回はその使い方を解説していく。

text関数の使い方

text関数は引数に指定した座標(x, y)に、オプションで指定したスタイルでテキストを描画する。

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(1000)

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

ax.text(500, -50, 'Hello World', family='monospace', fontsize=10)

ax.plot(data.cumsum())

annotate関数の使い方

annotate関数を使うと、テキストと矢印を使い、プロットに注釈を描画することができる。

先ほどの例で使用したランダムウォークのプロットを用いて、実際の使用例を見ていこう。

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

ax.annotate('Hello World', xy=(500, -60), xytext=(550, -40),
           arrowprops=dict(facecolor='black', headwidth=4, width=2, headlength=4),
           horizontalalignment='left')

ax.plot(data.cumsum())

annotate関数には上記のとおり、様々なオプションが用意されているが、今回使用したオプションについて簡単に解説しておく。

第一引数には描画するテキストを指定。
xyオプションはラベルから伸びる矢印の終点を、xytextオプションにはラベルの位置を指定する。

arrowpropsオプションには、dict関数で矢印に関するサイズや色などの属性を設定している。

今回は基本的な関数の使用例を紹介するに留めたが、annotate関数は多くのオプションが用意されており、かなり細かい設定が可能だ。

必要に応じてオフィシャルのドキュメントなどを参考にすると良いだろう。