我希望能够显示一个对象;在我的matplotlib图上将其称为“坡度”。例如:

import numpy as np
import matplotlib.pyplot as plt

range1 = a[(-5. <= a) & (-3. >= a)]
range2 = b[(-5. <= a) & (-3. >= a)]

'''Calculate slope value from endpoints in the data range (linear).'''

xslopeentry1 = range1[0]
xslopeentry2 = range1[-1]
yslopeentry1 = range2[0]
yslopeentry2 = range2[-1]
Slope = (yslopeentry2-yslopeentry1)/(xslopeentry2-xslopeentry1)

plt.plot(range1,range2)
plt.show()


现在,如何在我的绘图上“打印”或显示“坡度”获得的值?

最佳答案

有几种在matplotlib中添加文本的选项。最好的解释来自documentation

为了您的目的,可能有3种选择:

1.)Text relative to axes

matplotlib.pyplot.text(Slope,x,y)


其中x和y是文本相对于轴的坐标。

2.)Text relative to figure

matplotlib.pyplot.figtext(Slope,x,y)


其中x和y是文本相对于图形的坐标

3.)Annotation

这将创建一个引用特定数据点的文本注释。这在这里没有多大意义,但如果您想要一个箭头指向与坡度相关的线,则可以轻松创建箭头。

matplotlib.pyplot.annotate(Slope, xy=(xx, yy), xytext=(x, y),
        arrowprops=dict(facecolor='black', shrink=0.05))


其中x和y是文本坐标,而xx和yy是箭头指向的点的坐标。

**请注意,以上示例仅将斜率的值放在绘图上。如果您要使用“斜率:值”,则将上面的“斜率”替换为:

"Slope: {0}".format(Slope)

10-04 17:37