2016-05-31 67 views
1

我有以下代碼:matplotlib插曲工作不正常

import matplotlib.pyplot as plt 
horas = [1,2,3,4] 
diccionario = {(1,1,2,1):[2,3,4,5], 
       (1,2,2,2):[2,5,1,5], 
       (1,3,2,3):[2,5,5,5], 
       (1,4,2,4):[2,6,8,5], 
       (1,5,2,5):[2,7,5,5], 
       (1,6,2,6):[2,8,2,5], 
       (1,7,2,7):[2,9,6,5], 
       (1,8,2,8):[2,4,9,5]} 
plt.figure()  
i = 1 
maximo = 0 
keys = diccionario.keys() 
for n in range(0,len(keys)-1,2): 
    gn, = plt.plot(horas,diccionario[keys[n]],'ro-') 
    gn1, = plt.plot(horas,diccionario[keys[n+1]],'g*-') 
    plt.subplot(len(keys)//2, 1,i) 
    plt.legend([gn,gn1], [keys[n],keys[n+1]]) 
    i+=1 
plt.show() 

我期望有4個次要情節與各兩行。我有他們,但最後一個是空的。

任何人都可以解釋爲什麼?我嘗試了許多不同的方法,但都沒有成功。

+0

最後我明白了。在gn,= plt.plot(horas,diccionario [keys [n]],'ro-')之前,只需將plt.subplot(len(keys)// 2,1,i) – emafermon

回答

1

把你副區()您繪製GNGN1之前。這將解決你的問題。

for n in range(0, len(keys) - 1,2): 
    plt.subplot(len(keys)//2, 1, i) 
    gn, = plt.plot(horas, diccionario[keys[n]], 'ro-') 
    gn1, = plt.plot(horas, diccionario[keys[n+1]], 'g*-') 
    plt.legend([gn, gn1], [keys[n], keys[n+1]]) 
    i+=1 

順便說一句,我建議使用元組,而不是字典。您可能會注意到結果的順序與您想要的完全不同。