Matplotlib上最适合的线条

时间:2015-10-20 16:00:36

标签: python 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()

1 个答案:

答案 0 :(得分:0)

如果你想要线性最佳拟合,那么:

import numpy as np
import matplotlib.pyplot as plt

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