2017-08-03 76 views
2

我有一個我正在繪製的值列表,每次我循環訪問列表時,我都會創建一個繪圖。但是,每次通過循環時,圖都會覆蓋。這是我嘗試遠遠沒有工作。避免覆蓋列表的值 - Python(Pandas)

myPath = "//my/absolute/path" 

for i in list_val: 
    i.plot('var1', 'var2') 
    plt.savefig(os.path.join(myPath,''.join("figure{y}.png".format(y = i)))) 
    plt.show() 

然而,當我嘗試以下,它覆蓋的圖像(我知道這會發生),

myPath = "//my/absolute/path" 

for i in list_val: 
    i.plot('var1', 'var2') 
    plt.savefig(os.path.join(myPath,''.join("figure.png"))) 
    plt.show() 

如何修改我上面的第一個片段,以避免覆蓋圖像?

+0

list_val是dataframes的名單?在第一個片段中,保存的png的名稱是什麼? – saintsfan342000

+0

@ saintsfan342000是的,它是一個數據框的列表,我命名我的結果圖像爲「figure」爲例。我正在尋找添加像'figure1'' figure2'等。 –

回答

2

如何

myPath = "//my/absolute/path" 

for index,df in enumerate(list_val): 
    df.plot('var1', 'var2') 
    plt.savefig(os.path.join(myPath,''.join("figure{y}.png".format(y = index)))) 
    plt.show() 
+0

所以它不會拋出一個錯誤? – DJK

+0

我有'j'和'i'開關,這是我粗心的錯誤,現在它工作得很好:) –

+0

是的,可能是一個壞主意,不要把它們按字母順序放在我的部分我更新 – DJK

2

嘗試

myPath = "//my/absolute/path" 

for i in range(1, len(list_val)): 
    list_val[i].plot('var1', 'var2') 
    plt.savefig(os.path.join(myPath,''.join("figure{y}.png".format(y = i+1)))) 
    plt.show() 
+0

這種方法會拋出一個錯誤'TypeError:'list'對象不能被解釋爲一個整數',我認爲像這樣使用'range'將不起作用,可能它應該是'for i in range(1,len(list_val)):',將實際給予'範圍'。 –

+0

你說得對,應該有一個len()參數。 – Cuber