我试图根据这个例子(http://matplotlib.org/examples/pylab_examples/arrow_simple_demo.html)在matplotlib中绘制一个从(0.1,0.5)到(0.5,0.5)的箭头:
f = plt.figure()
ax = plt.subplot(2, 1, 1)
plt.xlim([0, 1])
plt.ylim([0, 1])
ax.arrow(0.1, 0.5, 0.5, 0.5,
head_width=0.05,
head_length=0.1,
fc='k',
ec='k',
clip_on=False)
plt.show()
这应该产生一个水平箭头,但由于某种原因,它会给出一个不会以(0.5,0.5)结束的倾斜箭头。这有什么不对?
答案 0 :(得分:3)
matplotlib.pyplot.arrow(x, y, dx, dy, hold=None, **kwargs)
向轴添加箭头。
呼叫签名:
arrow(x, y, dx, dy, **kwargs)
在
(x, y)
到(x + dx, y + dy)
的指定轴上绘制箭头。使用FancyArrow补丁构造箭头。
所以,在你的箭头中,你有:
x = 0.1,
y = 0.5,
dx = 0.5,
dy = 0.5
因此,您将绘制从(0.1,0.5)
到(0.6,1.0)
的箭头。
设置dy=0
,您将获得一个水平箭头。要获得(0.1,0.5)
到(0.5,0.5)
的箭头,您需要:
ax.arrow(0.1, 0.5, 0.4, 0.0, etc...)