传奇图中的顺序python

时间:2016-04-26 13:22:52

标签: python matplotlib plot

我需要在同一个图上绘制多组数据,我使用matplotlib。

对于某些情节,我使用plt.errorbar(),而其他情节则使用plt.plot()。但是当我制作一个传奇时,首先出现用zorder创建的传奇,无论我将它们放在文件中的顺序(val++似乎对图例中的位置没有影响)。

无论我如何绘制数据,我如何在图例中提供我想要的订单?

1 个答案:

答案 0 :(得分:19)

您可以手动调整订单,方法是使用ax.get_legend_handles_labels获取图例句柄和标签,然后重新排序结果列表,并将其提供给ax.legend。像这样:

import matplotlib.pyplot as plt
import numpy as np

fig,ax = plt.subplots(1)

ax.plot(np.arange(5),np.arange(5),'bo-',label='plot1')
ax.errorbar(np.arange(5),np.arange(1,6),yerr=1,marker='s',color='g',label='errorbar')
ax.plot(np.arange(5),np.arange(2,7),'ro-',label='plot2')

handles,labels = ax.get_legend_handles_labels()

handles = [handles[0], handles[2], handles[1]]
labels = [labels[0], labels[2], labels[1]]

ax.legend(handles,labels,loc=2)
plt.show()

enter image description here

相关问题