Matplolib artık OP'nin aradığı gibi 'açıklama satırlarına' izin veriyor. annotate()
İşlev, yani çok sayıda bağlantı yollarının formları ve başsız ve tailess oku, basit bir çizgi, bunlardan biri sağlar.
ax.annotate("",
xy=(0.2, 0.2), xycoords='data',
xytext=(0.8, 0.8), textcoords='data',
arrowprops=dict(arrowstyle="-",
connectionstyle="arc3, rad=0"),
)
Gelen belgeler size ilk argüman olarak boş bir dize ile sadece bir ok çizin söylüyor.
OP'nin örneğinden:
%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'in cevabındaki yaklaşımda olduğu gibi, rengi, çizgi genişliğini, çizgi stilini vb. Seçebilirsiniz.
Burada, kodun bir bölümünde, iki örnek çizgiden birini kırmızı, daha geniş ve% 100 opak değil, daha geniş yapacak bir değişiklik var.
# 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."),
)
Ayrıca ayarlayarak bağlantı çizgisine eğri ekleyebilirsiniz connectionstyle
.