2012-04-11 24 views
24

yerine sütunlar arasında öğeler ekleyin. Aşağıdaki basit bir çizim için, matplotlib'i, ilk sütunun yerine ikinci sütunun yerine satırları sola, sağa kaydırır, böylece efsaneyi doldurmanın bir yolu var mıdır?Matplotlib efsanesi, aşağı

>>> from pylab import * 
>>> x = arange(-2*pi, 2*pi, 0.1) 
>>> plot(x, sin(x), label='Sine') 
>>> plot(x, cos(x), label='Cosine') 
>>> plot(x, arctan(x), label='Inverse tan') 
>>> legend(loc=9,ncol=2) 
>>> grid('on') 

enter image description here

cevap

20

Bir şekilde düşünebilirsiniz. İstediğiniz gibi order your legend items yapabilirsiniz. Yapmanız gereken tek şey siparişi değiştirmek, böylece istediğiniz sonucu verecektir.

import matplotlib.pyplot as plt 
import numpy as np 
import itertools 

def flip(items, ncol): 
    return itertools.chain(*[items[i::ncol] for i in range(ncol)]) 

x = np.arange(-2*np.pi, 2*np.pi, 0.1) 
ax = plt.subplot(111) 
ax.plot(x, np.sin(x), label='Sine') 
ax.plot(x, np.cos(x), label='Cosine') 
ax.plot(x, np.arctan(x), label='Inverse tan') 

handles, labels = ax.get_legend_handles_labels() 
plt.legend(flip(handles, 2), flip(labels, 2), loc=9, ncol=2) 

plt.grid('on') 
plt.show() 

enter image description here