【こつこつPython】Pythonでグラフに矢印注釈を表示する方法|matplotlib.pyplot.annotate

Pythonでグラフに注釈を表示する方法です。
使用するのはPythonのmatplotlibライブラリのannotate関数です。

import matplotlib.pyplot as plt

このようなデータを使用します。

x = [0, 1, 2, 3, 4, 5]
y = [0, 1, 2, 3, 4, 5]

まず、figure関数、plot関数、grid関数を使用してグラフを作成します。
grid関数を使用すると、グラフの縦と横に目盛り線をひけます。
実行します。

plt.figure(figsize=(8, 4))
plt.plot(x, y)
plt.grid()
plt.show()

グラフを表示できました。

次に、annotate関数を使用して、"point"という注釈を表示させてみましょう。
引数に注釈の文字を指定します。
また、引数xyに注釈を示したい場所のx座標とy座標をタプルで指定します。
更に、text関数と同様に大きさ、色なども引数に指定できます。
実行します。

plt.figure(figsize=(8, 4))
plt.plot(x, y)
plt.grid()
plt.annotate("point", xy=(3,3), fontsize=20, color="red")
plt.show()

注釈を表示できました。
ただし、このままでは文字列の表示と同じです。

引数arrowpropsに辞書を指定し、引数xytextに注釈の文字を表示したい座標を指定すると、離れた場所から矢印で注釈を表示できます。
引数arrowpropsには空の辞書を指定し、注釈の位置に異なる場所を指定してみましょう。
実行します。

plt.figure(figsize=(8, 4))
plt.plot(x, y)
plt.grid()
plt.annotate("point", xy=(3,3),  fontsize=20, color="red", 
             arrowprops=dict(), xytext=(4,2))
plt.show()

x座標が4、y座標が2の位置から、x座標が3、y座標が3の位置に向かって矢印で注釈を付けることができました。

また、矢印の大きさや色などは引数arrowpropsの辞書の中で指定できます。
引数widthに矢印の幅、引数colorに矢印の色を指定します。
実行します。

plt.figure(figsize=(8, 4))
plt.plot(x, y)
plt.grid()
plt.annotate("point", xy=(3,3),  fontsize=20, color="red", 
             arrowprops=dict(width=1, color="green"), xytext=(4,2))
plt.show()

矢印の幅を細く、色を緑色にできました。

関連メソッド

【こつこつPython】Pythonでグラフにテキストを表示する方法|matplotlib.pyplot.text