【问题标题】:Order in legend plots python图例中的顺序python
【发布时间】:2016-04-26 13:22:51
【问题描述】:

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

对于某些地块,我使用plt.plot(),而对于其他地块,我使用plt.errorbar()。但是,当我创建图例时,使用plt.plot() 创建的图例首先出现,无论我将它们按什么顺序放入文件中(zorder 似乎对图例中的位置没有影响)。

无论我绘制数据的方式如何,如何在图例中给出我想要的顺序?

【问题讨论】:

    标签: python matplotlib plot


    【解决方案1】:

    您可以手动调整顺序,方法是使用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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 2020-12-02
      • 2021-09-28
      • 1970-01-01
      相关资源
      最近更新 更多