如何注释由 2 个不同数组制成的条形图?

How do I annotate a barplot made from 2 different arrays?

这是我的图表:

图表是用 2 个不同的数组制作的:

[' A6' ' Q2' ' Q5' ' A5' ' A1' ' A4' ' Q3' ' A3']
[ 748  822  877  882 1347 1381 1417 1929]

我相信第一个是字符串数组。现在,我查找了不同的解决方案来注释条形图,我能找到的每个解决方案都带有 pandas 数据帧图。我的有 numpy 数组...我不知道这是否会使它变得更复杂?

无论如何,这是我试图在图表上获取注释的代码:

plt.figure()
plot = plt.bar(x, y)
for bar in plot.patches:
    plot.annotate(bar.get_height(),
                  (bar.get_x() + bar.get_width() / 2,
                   bar.get_height()), ha='center', va='center',
                  size=15, xytext=(0, 8),
                  textcoords='offset points')
plt.xlabel("Car Model")
plt.ylabel("Car Frequency")
plt.title("Frequency of Most Popular Audi Cars")
plt.ylim(bottom=0)
plt.show()

这段代码给我一个错误:

Traceback (most recent call last):
  File "blablabla", line 137, in <module>
    plot.annotate(bar.get_height(),
AttributeError: 'BarContainer' object has no attribute 'annotate'

所以好像我的 BarContainer 或条形图没有属性注释...坦率地说,即使在查找之后我也不知道它是什么意思。

有人可以帮忙吗?

谢谢,抱歉,如果代码缺少信息,请尝试使其完整。

我可以使用 axes.pathces 而不是 plot.patches 进行注释。

x = [' A6' ,' Q2', ' Q5', ' A5', ' A1', ' A4', ' Q3', ' A3']
y = [ 748,  822,  877,  882 ,1347 ,1381 ,1417, 1929]
fig, ax =  plt.subplots(figsize = (10, 7))
ax.bar(x, y)
for bar in ax.patches:
    ax.annotate(text = bar.get_height(),
                  xy = (bar.get_x() + bar.get_width() / 2, bar.get_height()),
                  ha='center', 
                  va='center',
                  size=15,
                  xytext=(0, 8),
                  textcoords='offset points')
plt.xlabel("Car Model")
plt.ylabel("Car Frequency")
plt.title("Frequency of Most Popular Audi Cars")
plt.ylim(bottom=0)
plt.show()