記錄一下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)
最終效果