我不得不重新订购一个传奇中的项目,而我认为我不应该这样做。我试着:
from pylab import *
clf()
ax=gca()
ht=ax.add_patch(Rectangle((1,1),1,1,color='r',label='Top',alpha=.01))
h1=ax.bar(1,2,label='Middle')
hb=ax.add_patch(Rectangle((1,1),1,1,color='k',label='Bottom',alpha=.01))
legend()
show()
最后底部在中间上方。我怎样才能得到正确的订单?它不是由创建顺序决定的吗?
更新:可以使用以下命令强制执行订单。我想这可能是最简单的方法,而且看起来很尴尬。问题是什么决定了最初的顺序?
hh=[ht,h1,hb]
legend([ht,h1.patches[0],hb],[H.get_label() for H in hh])
顺序是确定的,但是私有元素的一部分可以随时更改,请参见代码here(元素
self.*
是已添加的艺术家的列表,因此句柄列表首先按类型排序,其次按添加的顺序排序)。如果要显式地控制图例中元素的顺序,请像在编辑中那样组合处理程序和标签的列表。
在其他一些问题上有轻微的变化。列表
order
的长度应与图例项的数量相同,并手动指定新顺序。下面是对图例中的条目进行排序的快速片段。它假设您已经添加了带有标签的绘图元素,例如
然后是主位:
这只是对http://matplotlib.org/users/legend_guide.html中列出的代码的简单改编
相关问题 更多 >
编程相关推荐