我以前没有使用过matplotlib—我已经下载了库并阅读了文档。我试图用下面的代码在条形图的顶部显示值。但是,该值不会显示
import numpy as np
import matplotlib.pyplot as plt
data = [ ("data1", 34), ("data5", 22),
("data12", 11), ( "data8", 28),
("data53", 57), ( "data11", 39),
("data12", 23), ( "data15", 98)]
N = len(data)
x = np.arange(1,N+1)
y = [ num for (s, num) in data ]
labels = [ s for (s, num) in data ]
width = 1
bar1 = plt.bar( x, y, width, color="y" )
plt.ylabel( 'Intensity' )
plt.xticks(x + width/2.0, labels )
for x, y in zip(x, y):
plt.annotate("%i" % y, (x, y + 200), ha= 'center')
plt.show()
非常感谢任何帮助
您的问题很简单,注释的位置比当前的y轴限制高出方式,这是因为在y轴位置上增加了200个。在
只需将垂直偏移量更改为一个更合理的数字(上面选择为
y_shift = 5
)就可以解决高度问题,但是您还需要在x位置添加width/2.0
以获得条中心的文本(假设这是您想要的)。我还在末尾添加了plt.ylim(0,110)
以稍微移动y限制,以显示最大条的数字。在相关问题 更多 >
编程相关推荐