假设我正在使用此代码绘制一个非常基本的步骤图:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6]
y = [0.5, 0.22, 0.75, 1, 0.9, 1.2]
text = ['H', 'F', 'E', 'F', 'IT', 'M']
plt.step(x, y,'k-', where='post')
plt.show()
如何在每个行或条的顶部显示text
列表?因此,在条形图顶部的x=1 and x=2
之间,'H'
,x=2 and x=3
之间,'F'
之间,等等......
答案 0 :(得分:3)
您可以使用text()
方法添加任意文本。默认情况下,此方法使用数据坐标,因此您可以使用y数据加上偏移量,但是您需要切掉最后一个值,因为它没有在图表中绘制。使用常规间隔,您可以使用numpy.arange()
获取文本的x坐标。
import numpy as np
text_x = np.arange(1.5, 5.6)
text_y = [yval+0.06 for yval in y[:-1]]
for t, tx, ty in zip(text[:-1], text_x, text_y):
plt.text(tx, ty, t)