matplotlib 如何指定箭头坐标

blmhpbnm  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(129)

我试着在matplotlib中画一个从(0.1,0.5)到(0.5,0.5)的箭头,基于这个例子(http://matplotlib.org/examples/pylab_examples/arrow_simple_demo.html):

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)。这里有什么问题吗?

qc6wkl3g

qc6wkl3g1#

Axes.arrowpyplot.arrow

.arrow(x, y, dx, dy, hold=None, **kwargs)

向轴添加箭头。
呼叫签名:

arrow(x, y, dx, dy, **kwargs)

在指定的轴上绘制从(x, y)(x + dx, y + dy)的箭头。使用FancyArrow patch来构造箭头。
所以,在你的箭头中,你有:

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)的箭头,你需要:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

ax.set_xlim(0, 0.6)
ax.set_ylim(0.45, 0.55)

ax.arrow(0.1, 0.5, 0.4, 0.0)

相关问题