我想用matplotlib绘制箭头,以便每个箭头的大小相等,而不管实际箭头的大小。
示例:
使用matplotlib.pyplot.Arrow()绘制箭头:
# p is the point of origin, pdiff the direction
arr = plt.Arrow(p[0], p[1], pdiff[0], pdiff[1], fc=color, width=0.4)
plt.gca().add_patch(arr)
答案 0 :(得分:7)
您在pylab.arrow
(或FancyArrow
)之后,然后您可以指定head_width
和head_length
,因此它们与箭头的大小无关。这是一个例子:
import math
import pylab
pylab.plot(range(11), range(11))
opt = {'head_width': 0.4, 'head_length': 0.4, 'width': 0.2,
'length_includes_head': True}
for i in xrange(1, 360, 20):
x = math.radians(i)*math.cos(math.radians(i))
y = math.radians(i)*math.sin(math.radians(i))
# Here is your method.
arr = pylab.Arrow(4, 6, x, y, fc='r', alpha=0.3)
pylab.gca().add_patch(arr)
# Here is the proposed method.
pylab.arrow(4, 6, x, y, alpha=0.8, **opt)
pylab.show()
产生: