Насколько я понимаю, вы спрашиваете, что делать, когда стрелка сходит с сюжета. Есть несколько вариантов:
- Вы можете вытянуть стрелку до границы и использовать тип стрелки, который указывает, что это не истинный конец стрелки, такой как половина стрелка, головка,
"shape"="left"
, или открыть против закрытия и т. Д. - Вы можете нарисовать стрелку на полпути вдоль стрелы, как это сделано для обтекания. Я не знаю команды для этого в MPL, но вы можете легко сделать это, используя две стрелки или просто построить линию, головку стрелы и т. Д.
Редактировать:Для полноты, я добавлю свой взгляд на #2. Вот я запланировал линию, а затем накладываю стрелку над линией, и стрелка может быть построена в любом месте вдоль линии и контролируется f
(между 0 и 1). В примере показано несколько строк, представленных для f
от 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)