我遵循本教程在条形图link中添加值
博客中显示的代码是这样写的
from matplotlib import pyplot as plt
import numpy as np
years = [1901, 1911, 1921, 1931, 1941, 1951, 1961, 1971, 1981, 1991, 2001, 2011]
population = [237.4, 238.4, 252.09, 251.31, 278.98, 318.66, 361.09, 439.23, 548.16, 683.33, 846.42, 1028.74]
x = np.arange(len(years)) # the label locations
width = 0.35 # the width of the bars
fig, ax = plt.subplots()
ax.set_ylabel('Population(in million)')
ax.set_title('Years')
ax.set_xticks(x)
ax.set_xticklabels(years)
pps = ax.bar(x - width/2, population, width, label='population')
for p in pps:
height = p.get_height()
ax.annotate('{}'.format(height),
xy=(p.get_x() + p.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
plt.show()
输出结果是这样的
但是,我刚刚意识到,从条形图的xticks是不居中
我的问题是-有人知道如何中心的xticks?
我在努力寻找解决办法,但还没有找到
2条答案
按热度按时间m3eecexj1#
在
matplotlib
3.4.0或更高版本中,可以使用bar_label
代替annotate
:6tdlim6h2#
imo教程使绘图变得比它需要的更混乱。你很少需要从图中的艺术家那里获取坐标。直接使用您的数据: