在matplotlib里的柱状图是没有数值显示的设置,若是需要在柱状图上带数值显示,这边可以通过matplotlib里的text功能为图形上添加数值显示。
示例如下
%matplotlib inline
import matplotlib.pyplot as plt
# matplotlib绘图显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(10, 8))
rects_fig = plt.bar(
[1,2,3,4,5,6,7,8],
[3,1,4,5,8,9,7,2],
tick_label = ['A','B','C','D','E','F','G','H'],
alpha=0.6,
width = 0.8,
facecolor = 'deeppink',
edgecolor = 'darkblue',
lw=1
)
plt.xticks(rotation=30) # 这里是调节横坐标的倾斜度,rotation是度数
# 设置坐标刻度值的大小以及刻度值的字体
plt.tick_params(labelsize=20)
# plt.legend(loc="upper right", fontsize=20)
# 添加数据标签 就是矩形上面的数值
def add_labels(rects):
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x() + rect.get_width()/2, height+0.01*height, '%.0f元'%height, ha='center', va='bottom', fontsize=20, color='red')
rect.set_edgecolor('white')
add_labels(rects_fig)
plt.title('柱状图带数值显示', y=1, fontdict={'weight':'normal','size': 20})
plt.show()
核心代码块
# 添加数据标签 就是矩形上面的数值
def add_labels(rects):
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x() + rect.get_width()/2, height+0.01*height, '%.0f元'%height, ha='center', va='bottom', fontsize=20, color='red')
rect.set_edgecolor('white')