记录一下matplotlib绘制水平 柱状图的代码
import matplotlib.pyplot as plt
# 构建数据
plt.figure(figsize=(12, 8))
x_data = keys_set
y_data = res_precision
y_data2 = vgg_precision
bar_width=0.3
plt.barh(range(len(x_data)), y_data, height=bar_width)
plt.barh(np.arange(len(x_data))+bar_width, y_data2, height=bar_width) # label='Java基础', color='indianred', alpha=0.8,
# 在柱状图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
for x, y in enumerate(y_data):
plt.text(y+0.02 , x, '%s' % y, ha='right', va='top')
for x, y in enumerate(y_data2):
plt.text(y , x+bar_width, '%s' % y, ha='right', va='bottom')
# 重新设置坐标轴刻度,不设置的话从1开始显示数字
plt.yticks(np.arange(len(x_data))+bar_width/2, x_data)
plt.legend(["resnet-precision", "vgg-precision"], loc=2)
最终效果