2015-10-20 54 views
0

我想繪出一條最適合我的自動生成圖的線。我的圖形目前只是一個簡單的散點圖。我已經看到了各種解決方案,但是,它們都提供了一種繪製圖形的不同方法的解決方案。Matplotlib上最適合的線

我的代碼循環遍歷列表以繪製存儲在其中的數據。

我想知道是否有一種方法來實現這種方法最適合的線或我是否必須改變它;如果可以解釋如何改變它的工作,那將不勝感激。

for x in range (0,len(profits)): 
    plt.plot([yearofreleaselist[x]], [profits[x]], '-ro') 
    plt.annotate((filmlist[x]), xy=(yearofreleaselist[x], profits[x])) 
    oldestfilm = len(yearofreleaselist) 
    oldestfilm = oldestfilm-1 
    plt.axis([(int(yearofreleaselist[oldestfilm])-1), (int(yearofreleaselist[0]))+1, 0, (max(profits))+50000000]) 
plt.ylabel("Profit ($)") 
plt.xlabel("Year Of Release") 
name = str(textbox1.get()) 
plt.title("The Profits of " + name.title() + "'s films") 
plt.savefig(name+'.png') 
text3["text"] = plt.show() 

回答

0

如果你想有一個線性最適合的,怎麼樣:

import numpy as np 
import matplotlib.pyplot as plt 

plt.plot(yearofreleaselist, np.poly1d(np.polyfit(yearofreleaselist, profits, 1))(yearofreleaselist)) 
+0

感謝您的幫助!然而,當我運行它,我得到這個錯誤:TypeError:不支持的操作數類型爲+:'numpy.ndarray'和'浮動' – CheezeBo

+0

什麼yearofreleaselist和利潤的樣子? –

+0

利潤是一個整數列表,yearofreleaselist是一個字符串列表(我認爲) – CheezeBo