我正在尝试使用 matplotlib 绘制指向 python 曲线上一点的箭头。在这条线上,我需要在特定点指向垂直箭头。这是为了指示作用在梁上的力,因此它们的方向非常重要。其中曲线是梁,箭头是力。我确切地知道所述点的坐标,但它会随着输入而改变。此输入还应指示箭头是从直线向上还是向下指向。 (施加的负力和正力)。我对 plt.arrow 进行了无休止的尝试,但因为比例发生了巨大变化,箭头所在的象限也发生了巨大变化。所以它可能必须从 y 0 处结束。问题是箭头长度指向错误的方向,就像这样--。因此,在我因此而秃顶之前,我想知道是否有一种简单的方法可以应用垂直箭头(我所关心的在相反方向上可能是无限的)指向曲线上的一个点,我可以控制它是向上指向曲线,还是向下指向曲线。 最佳答案 我不确定我是否完全遵循您的要求,但我的方法是使用 annotate 而不是 arrow(只需将文本字段留空)。您可以在数据坐标中指定箭头的一端,在偏移像素中指定另一端:但是您必须将力(指示箭头的长度)映射到像素数。例如:import matplotlib.pyplot as pltimport numpy as np# Trial function for adding vertical arrows todef f(x): return np.sin(2*x)x = np.linspace(0,10,1000)y = f(x)fig = plt.figure()ax = fig.add_subplot(111)ax.plot(x,y, 'k', lw=2)ax.set_ylim(-3,3)def add_force(F, x1): """Add a vertical force arrow F pixels long at x1 (in data coordinates).""" ax.annotate('', xy=(x1, f(x1)), xytext=(0, F), textcoords='offset points', arrowprops=dict(arrowstyle='<|-', color='r'))add_force(60, 4.5)add_force(-45, 6.5)plt.show()关于python - 指向曲线上一点的箭头,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29881872/