Matplolibは、OPが探していたときに「注釈行」を使用できるようになりました。 annotate()
機能は、いくつかの形態の接続経路を可能にし、ヘッドレスおよびテールレスの矢印、すなわち単純な線がそれらの1つである。 the documentationで
ax.annotate("",
xy=(0.2, 0.2), xycoords='data',
xytext=(0.8, 0.8), textcoords='data',
arrowprops=dict(arrowstyle="-",
connectionstyle="arc3, rad=0"),
)
それはあなたが最初の引数として空の文字列を持つ唯一の矢印を描くことができると言います。 OPの例から
:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(5)
x = np.arange(1, 101)
y = 20 + 3 * x + np.random.normal(0, 60, 100)
plt.plot(x, y, "o")
# draw vertical line from (70,100) to (70, 250)
plt.annotate("",
xy=(70, 100), xycoords='data',
xytext=(70, 250), textcoords='data',
arrowprops=dict(arrowstyle="-",
connectionstyle="arc3,rad=0."),
)
# draw diagonal line from (70, 90) to (90, 200)
plt.annotate("",
xy=(70, 90), xycoords='data',
xytext=(90, 200), textcoords='data',
arrowprops=dict(arrowstyle="-",
connectionstyle="arc3,rad=0."),
)
plt.show()
だけgcalmettesの答えでのアプローチのように、あなたが色、線幅、線種などを選択することができます。..
ここでは、2つのサンプルラインの1つを赤、幅広、100%不透明にしないコードの部分を変更しています。
# draw vertical line from (70,100) to (70, 250)
plt.annotate("",
xy=(70, 100), xycoords='data',
xytext=(70, 250), textcoords='data',
arrowprops=dict(arrowstyle="-",
edgecolor = "red",
linewidth=5,
alpha=0.65,
connectionstyle="arc3,rad=0."),
)
connectionstyle
を調整して接続線にカーブを追加することもできます。
すばらしい、完全なイラストで素晴らしい答えです!とても感謝しています! –
マイナーな修正です。上記のコードは 'x = np.arange(1,101)'と読みます。 –
これは線を描くのではなく、線分だけを描きます。どのように2つの点を投げたのかという疑問は未解決のままです。 – Alexey