我正在使用(matplotlib.pyplot作为plt)matplotlib来绘制条形图。在该条形图上,我使用灰色的axhline()函数绘制了一条水平线。我希望水平线开始的点(y轴上的值= 42000)也应显示值,即42000。怎么办?
这是我目前的形象:
在下图中,请参阅'39541.52'点?我希望在我的图像上显示与我的图像完全相同,我的点值为'42000'
答案 0 :(得分:9)
可以创建标签,例如使用ax.text()
。要定位标签,一个很好的技巧是使用一个转换,允许使用x位置的轴坐标和y位置的数据坐标。
ax.text(1.02, 4.2e4, "42000", .. , transform=ax.get_yaxis_transform())
完整代码:
import matplotlib.pyplot as plt
import matplotlib.colors
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
x = [0,1,2,3]
y = np.array([34,40,38,50])*1e3
norm = matplotlib.colors.Normalize(30e3, 60e3)
ax.bar(x,y, color=plt.cm.plasma_r(norm(y)) )
ax.axhline(4.2e4, color="gray")
ax.text(1.02, 4.2e4, "42000", va='center', ha="left", bbox=dict(facecolor="w",alpha=0.5),
transform=ax.get_yaxis_transform())
plt.show()