使用 matplotlib bar 向多条形图中添加值
Adding values to multibar plot using matplotlib bar
我正在使用以下代码:
import numpy as np
import matplotlib.pyplot as plt
Women = [115, 215, 250, 200]
Men = [114, 230, 510, 370]
n=4
r = np.arange(n)
width = 0.25
plt.bar(r, Women, color = 'b',
width = width, edgecolor = 'black',
label='Women')
plt.bar(r + width, Men, color = 'g',
width = width, edgecolor = 'black',
label='Men')
plt.xlabel("Year")
plt.ylabel("Number of people voted")
plt.title("Number of people voted in each year")
# plt.grid(linestyle='--')
plt.xticks(r + width/2,['2018','2019','2020','2021'])
plt.legend()
plt.show()
它生成了我需要的图,但我无法将值添加到顶部的条形图。即我希望在栏的顶部或中心为每个栏显示 Women
和 Men
的值。我必须使用函数 plt.bar
,因为代码是祖父级的。
您可以遍历数据列表并将 plt.text
放在每个条形图上方。
在 plt.legend()
和 plt.show()
之间添加:
for i, w, m in zip(r, Women, Men):
plt.text(i, w + 10, str(w), color='b',
horizontalalignment='center')
plt.text(i + width, m + 10, str(m), color='g',
horizontalalignment='center')
# Manually increase the top y-axis limit to make room for the
# label of the tallest bar
plt.ylim(0, 550);
我正在使用以下代码:
import numpy as np
import matplotlib.pyplot as plt
Women = [115, 215, 250, 200]
Men = [114, 230, 510, 370]
n=4
r = np.arange(n)
width = 0.25
plt.bar(r, Women, color = 'b',
width = width, edgecolor = 'black',
label='Women')
plt.bar(r + width, Men, color = 'g',
width = width, edgecolor = 'black',
label='Men')
plt.xlabel("Year")
plt.ylabel("Number of people voted")
plt.title("Number of people voted in each year")
# plt.grid(linestyle='--')
plt.xticks(r + width/2,['2018','2019','2020','2021'])
plt.legend()
plt.show()
它生成了我需要的图,但我无法将值添加到顶部的条形图。即我希望在栏的顶部或中心为每个栏显示 Women
和 Men
的值。我必须使用函数 plt.bar
,因为代码是祖父级的。
您可以遍历数据列表并将 plt.text
放在每个条形图上方。
在 plt.legend()
和 plt.show()
之间添加:
for i, w, m in zip(r, Women, Men):
plt.text(i, w + 10, str(w), color='b',
horizontalalignment='center')
plt.text(i + width, m + 10, str(m), color='g',
horizontalalignment='center')
# Manually increase the top y-axis limit to make room for the
# label of the tallest bar
plt.ylim(0, 550);