传奇图中的顺序python

Sil*_*viu 10 python plot matplotlib

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

对于我使用的一些图plt.plot()和我使用的其他图plt.errorbar().但是当我创建一个传奇时,创建的那些plt.plot()首先出现,无论我把它们放在文件中的顺序(并且zorder似乎对图例中的位置没有影响).

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

tmd*_*son 21

您可以手动调整顺序,方法是使用图例处理和标签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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述