我有一组细分线 AB 。点 A 位于[x0,y0] = [0.0]
坐标中作为径向点。 B 是细分线[x1,y1]
的结尾。我找到了一些答案here,我试图让它适应我的问题。
问题:如何绘制径向段,显示B是箭头的末尾。?因为,在我的代码中,箭头大小确实超过了绘图窗口。
任何帮助都将不胜感激。
import numpy as np
import pylab as pl
def arrow_segment(AB):
for idx in range(0,len(AB)):
plt.arrow(AB[idx,0], #x1
AB[idx,1], # y1
AB[idx,2]-AB[idx,0], # x2 - x1
AB[idx,3]-AB[idx,1], # y2 - y1
color='blue',head_width=0.05, head_length=0.1)
plt.show()
AB = [[0, 0., 1., 10]]
arrow_segment(AB)
答案 0 :(得分:1)
我的理解是,当箭头离开情节时,你正在询问该怎么做。有几个选择:
"shape"="left"
或打开与关闭,等 修改强>
为了完整起见,我将把我的看法加在#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)