Sarebbe utile avere un esempio autonomo, possibilmente con dati inventati, in modo che le persone possano eseguirlo immediatamente. Ecco un esempio autonomo modificato da ciò che hai pubblicato che funziona bene per me in ipython -pylab
, con una recente revisione svn di Matplotlib; Penso che alcuni bug relativi alle leggende siano stati risolti di recente.
colors = (i + j for j in 'o<.' for i in 'bgrcmyk')
labels = 'one two three four five six seven eight nine ten'.split()
x = linspace(0, 2*pi, 3000)
d = (2+random((2,3000))) * c_[sin(x), cos(x)].T
for i, l, c in zip(range(10), labels, colors):
start, stop = i * 300, (i + 1) * 300
plot(d[0, start:stop], d[1, start:stop], c, label=l)
legend(loc='lower left')
show()
ed ecco cosa ottengo:
example figure http://www.iki.fi/jks/tmp/legend.png
Supponendo che il bug è legato alla funzione di auto-leggenda, si potrebbe essere in grado di lavorare intorno ad esso per essere esplicito su ciò che si desidera in la legenda:
colors = (i + j for j in 'o<.' for i in 'bgrcmyk')
labels = 'one two three four five six seven eight nine ten'.split()
x = linspace(0, 2*pi, 3000)
d = (2+random((2,3000))) * c_[sin(x), cos(x)].T
lg = []
for i, l, c in zip(range(10), labels, colors):
start, stop = i * 300, (i + 1) * 300
handle = plot(d[0, start:stop], d[1, start:stop], c, label=l)
lg.append(handle)
legend(lg, labels, loc='lower left')
show()
Sto comprendendo correttamente che ci devono essere solo 10 elementi elencati nella legenda? –
Sì, hai ragione. – bayer