2015-10-20 25 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