如何注释由 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()
这是我的图表:
图表是用 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()