Запись легенды для гистограммы, аналогичная многим другим художникам, создается путем указания аргумента label
.
ax.bar(...., label="my label")
ax.legend()
Это также показано в первом примере в документации.
Полный пример:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
train_errors = [1,2,3,4,5]
val_errors = [2,1,4,2,3]
test_errors = [5,4,3,2,1]
X = list("ABCDE")
x1 = [i-0.2 for i in range(len(train_errors))]
x2 = [i for i in range(len(train_errors))]
x3 = [i+0.2 for i in range(len(train_errors))]
ax.bar(x1, train_errors, width=0.2, color='b', label="Train Errors")
ax.bar(x2, val_errors, width=0.2, color='g', label="Val Errors")
ax.bar(x3, test_errors, width=0.2, color='r', label="Test Errors")
ax.set_xticks(x2)
ax.set_xticklabels(X)
ax.legend()
ax.set_xlabel('Models')
ax.set_ylabel('RMSE')
ax.set_title('Regression Models Comparison')
plt.show()