按两个条件对数组进行排序

时间:2014-02-25 20:58:19

标签: python sorting matplotlib

我的图有一个非常大的图例,为了更容易找到每个对应的线,我想用最后一个数据点的线的y值对图例进行排序。

plots[]包含Line2D对象列表,

labels[]是每个Line2D对象的相应标签,通过labels = [plot._label for plot in plots]生成

我想按plots._y[-1]对每个/两个数组进行排序,最后一点的y值

如果我还可以先按_linestyle(一个字符串)然后按y值排序,那么

点数。

我不确定如何做得好,我不认为它需要一个循环,但它可能因为我按2个标准排序,其中一个处理起来很棘手(':'并且'-'是linestyle的值。有没有可以帮助我的功能?

编辑:我刚刚想到我可以在排序后生成标签,这样可以使事情变得简单。但是,我仍然需要按每个对象的linestyle和y [-1]值对plots进行排序。

1 个答案:

答案 0 :(得分:1)

我相信这可行:

sorted(plots, key = lambda plot :(plot._linestyle, plot._y[-1]))