Je comprends que vous demandez quoi faire lorsque la pointe de flèche est hors de l'intrigue. Il y a quelques options:
- Vous pouvez dessiner la flèche jusqu'à la limite et utiliser un type de tête de flèche qui indique que ce n'est pas la véritable extrémité de la flèche, comme une demi-tête de flèche,
"shape"="left"
, ou ouvert vs fermé, etc. - Vous pouvez dessiner la pointe de flèche à mi-chemin le long de la flèche, comme se fait pour une rationalisation. Je ne connais pas de commande pour cela dans MPL, mais vous pouvez facilement le faire en utilisant deux flèches, ou simplement tracer une ligne et la tête d'une flèche, etc.
Éditer:Pour l'exhaustivité, j'ajouterai mon point de vue sur un n ° 2. Ici je trace la ligne, puis je trace la flèche sur la ligne, et la pointe de flèche peut être tracée n'importe où le long de la ligne et contrôlée par f
(entre 0 et 1). L'exemple montre quelques lignes tracé pour f
allant de 0
à .1
.
import numpy as np
import pylab as plt
def arrow_mh(v4, color, f=.5):
x0, y0, x1, y1 = v4
line = plt.plot([x0, x1], [y0, y1], color=color)
f = max(f, .0001)
dx = f*(x1-x0)
dy = f*(y1-y0)
a = plt.arrow(x0, y0, dx, dy,
color=color,head_width=0.05, head_length=0.1)
def arrow_segment(AB):
for idx in range(0,len(AB)):
arrow_mh(AB[idx], 'blue', .01*(9-idx))
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.show()
AB = np.array([[.1*i, .1, .5, 4] for i in range(10)])
arrow_segment(AB)