ラベルは昇順フロートにする必要があるため、chaco Legend のライン ラベルを変更したいと思います。
1,2,3,4
しかし、それは文字列の並べ替えであるため、次のようになります。
1, 10, 11, 2, 21 etc...
これに関して、ドキュメントが未完成のように見えることに気付きました:
http://chaco.readthedocs.org/en/latest/user_manual/basic_elements/overlays.html#legend
凡例のラベルを手動で設定してみました:
self.plot.legend.labels = list([i for i in self.mylist])
私はカラーマップを使用しているため、文字列の並べ替えにより、凡例に青い線と赤い線がランダムに混在しているように見えるため、これは非常に目立ちます。
以下は最小限の作業例です
この例では、私が使用しているのと同じカラーマップを使用していませんが、凡例の行の順序がどのようにソートされていないかを示しています。どのカラーマップが使用されるかは重要ではありません。重要なのは、凡例での文字列の並べ替えによって、望ましくない美学が得られることです。
from traits.api import *
from chaco.api import *
from traitsui.api import *
from chaco.example_support import COLOR_PALETTE
from enable.api import ComponentEditor
import numpy as np
class TestPlot(HasTraits):
plot = Instance(Plot)
traits_view = View( Item('plot', editor=ComponentEditor(), show_label=False) )
def _plot_default(self):
data = ArrayPlotData()
plot = Plot(data)
x = np.linspace(0,10,100)
data.set_data('x', x)
for i, freq in enumerate(range(1,20,3)):
y = 'line_%s' % freq
color = tuple(COLOR_PALETTE[i])
data.set_data(y, i*x)
plot.plot(('x', y), name=y, color=color)
plot.legend.visible = True
return plot
if __name__ == '__main__':
TestPlot().configure_traits()
スクリーンショットを参照してください: