今回は、Matplotlibでグラフに矢印(注釈)を表示する方法を紹介します。
グラフに矢印(注釈)を表示: plt.annotate
グラフに矢印を表示するには、plt.annotate()
を使用します。
plt.arrow()
でも矢印を表示することはできますが、
より簡単に使用できるplt.annotate()
を使用することをおすすめします。
plt.annotate()
は、グラフに矢印を表示する他に、テキストや注釈などを表示可能です。
plt.annotate()
を使用したサンプルコードは以下の通りです。
import matplotlib.pyplot as plt
# サンプルデータ生成
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# プロット
plt.plot(x, y, label='Data')
# 矢印を描画する座標を指定
x_arrow = 4
y_arrow = 8
# annotate関数を使用して矢印を描画
plt.annotate('(4, 8)', xy=(x_arrow, y_arrow), xytext=(x_arrow+0.5, y_arrow+0.5),
arrowprops=dict(headwidth=20, facecolor='blue', shrink=0.05))
# グラフを表示
plt.show()
実行結果
矢印についてイメージできたところで、annotate()
で使用するパラメータについて説明していきます。
plt.annotateのパラメータ
plt.annnotate()
で使用するパラメータについて説明します。
plt.annnotate()
の主要なパラメータは以下の通りです。
パラメータ | 説明 | |
---|---|---|
text | 注釈 | |
xy | 注釈の座標、タプル | |
xytext | 注釈のテキストの座標、タプル | |
arrowprops | 矢印のプロパティ | |
width | 矢印の幅 | |
headwidth | 矢印の先端部分の幅 | |
facecolor | 矢印の色 | |
shrink | 矢印の先端部分のサイズ、0~1の間の値 |
arrowprops
内のパラメータで矢印のプロパティを変更します。
注釈の文字と位置を変更
注釈の文字と位置(座標)を変更するには、text
とxy
, xytext
の値を変更します。
以下が変更例です。
import matplotlib.pyplot as plt
# サンプルデータ生成
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 矢印を描画する座標を指定
x_arrow = 2
y_arrow = 4
# 注釈のテキストを準備
words = ['A', 'B', 'c']
plt.plot(x, y, label='Data')
for i in range(len(words)):
# annotate関数を使用して矢印を描画
plt.annotate(words[i], xy=(x_arrow+i, y_arrow+2*i), xytext=(x_arrow+0.5+i, y_arrow+0.5+2*i),
arrowprops=dict(headwidth=20, facecolor='blue', shrink=0.05))
# グラフを表示
plt.show()
実行結果
words
で指定した注釈をxy
およびxytext
で位置を変更しています。
矢印の先端部分を変更
矢印の先端部分を変更には、headwidth
を使用します。
さっそくサンプルコードを見てみましょう!
import matplotlib.pyplot as plt
# サンプルデータ生成
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 矢印を描画する座標を指定
x_arrow = 2
y_arrow = 4
# 注釈のテキストを指定
words = ['A', 'B', 'c']
plt.plot(x, y, label='Data')
# annotate関数を使用して矢印を描画
plt.annotate('A', xy=(2, 4), xytext=(2.5, 4.5),
arrowprops=dict(headwidth=10, facecolor='blue', shrink=0.05))
plt.annotate('B', xy=(3, 6), xytext=(3.5, 6.5),
arrowprops=dict(headwidth=20, facecolor='blue', shrink=0.05))
plt.annotate('C', xy=(4, 8), xytext=(4.5, 8.5),
arrowprops=dict(headwidth=30, facecolor='blue', shrink=0.05))
# グラフを表示
plt.show()
実行結果
headwidth
を小さくした方がシャープな矢印になることが確認できると思います。
まとめ
今回はグラフに矢印(注釈)を表示、変更する方法を紹介しました。
矢印(注釈)は、図をわかりやすく、図で何を表現したいかを相手に伝えるためには、
大事な手段です。
ぜひ、自由自在に矢印(注釈)を表示できるようになってください!
ここまで読んでくださりありがとうございます!
参考
おすすめ教材
米国データサイエンティストがやさしく教えるデータサイエンスのためのPython講座 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜他のUdemyの講座が気になる方はこちら