Matplotlib与轴的传说

时间:2018-06-08 09:49:31

标签: python matplotlib legend axis

在添加图例时,我对这个特定的情节很难过。我已经回顾了类似的问题,但我没有看到任何挑战是如何在附加到轴对象的图例上标记三个元素(如条形图)。

如何添加图例,以便第一个栏显示为“训练错误”,第二个栏显示为“Val Errors”,第三个栏显示为“Test Errors”?

plt.figure(figsize=(20,10))
ax = plt.subplot(111)

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', align='center')
ax.bar(x2, val_errors, width=0.2, color='g', align='center')
ax.bar(x3, test_errors, width=0.2, color='r', align='center')
ax.set_xticklabels(X)
ax.xaxis.set_major_locator(ticker.FixedLocator([i-0.05 for i in x2]))

ax.legend((bar), ('label1'))

ax.set_xlabel('Models')
ax.set_ylabel('RMSE')
ax.set_title('Regression Models Comparison')
plt.show()

谢谢!

1 个答案:

答案 0 :(得分:1)

条形图的图例条目与许多其他艺术家类似,是通过指定searchdefs参数创建的。

label

这也在the documentation的第一个例子中显示。

完整示例:

ax.bar(...., label="my label")
ax.legend()

enter image description here