Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在培训数据集中定义此列?_Python_Pandas_Numpy_Matplotlib - Fatal编程技术网

Python 如何在培训数据集中定义此列?

Python 如何在培训数据集中定义此列?,python,pandas,numpy,matplotlib,Python,Pandas,Numpy,Matplotlib,我已经构建了一个包含两列X和Y的数据集,并对该数据使用了顺序为1、2和7的拟合模型(如下面的代码所示) 我想创建一个绘图,这样只有回归线出现,原始数据显示为黑色散点,但是当我绘制每个拟合模型时,它会显示指定颜色的回归线和原始数据。这意味着原始数据分散点不会显示为黑色,并且图例非常混乱。我该如何解决这个问题 此外,我想在我的训练数据框中添加每个拟合(订单1、2和7)的预测值作为附加列。最有效的方法是什么 %matplotlib inline import numpy as np import pa

我已经构建了一个包含两列X和Y的数据集,并对该数据使用了顺序为1、2和7的拟合模型(如下面的代码所示)

我想创建一个绘图,这样只有回归线出现,原始数据显示为黑色散点,但是当我绘制每个拟合模型时,它会显示指定颜色的回归线和原始数据。这意味着原始数据分散点不会显示为黑色,并且图例非常混乱。我该如何解决这个问题

此外,我想在我的训练数据框中添加每个拟合(订单1、2和7)的预测值作为附加列。最有效的方法是什么

%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

X = np.linspace(0, 18, num=10)
Y = (0.05*X**2)+4*np.sin(X)+1.15*X+2*np.random.randn()

combi = {'X':X, 'Y':Y}
train = pd.DataFrame(combi)
print(train)

linear = np.polyfit(X, Y, 1)
linear_fn = np.poly1d(linear)
#linear_fn is now a function which takes in X and returns an estimate for Y
quadratic = np.polyfit(X, Y, 2)
quadratic_fn = np.poly1d(quadratic)
#quadratic_fn is now a function which takes in X and returns an estimate for Y
order7 = np.polyfit(X, Y, 7)
order7_fn = np.poly1d(order7)
#order7_fn is now a function which takes in X and returns an estimate for Y
plt.scatter(X,Y, color = 'black', label = 'Original Data')
plt.plot(X, Y, 'yo', X, linear_fn(X), '--k', color='red', label='Linear')
plt.plot(X, Y, 'yo', X, quadratic_fn(X), '--k', color = 'green', label='Quadratic')
plt.plot(X, Y, 'yo', X, order7_fn(X), '--k', color = 'purple', label='Order 7')
plt.title('Training Data - Fits')
plt.legend()
plt.show()

不必要地重新绘制原始数据3次,这就是为什么要重复图例条目的原因。您可以先只绘制拟合线,然后在最后只绘制一次原始数据。这样,您就可以摆脱杂乱的多余图例,并根据需要获得黑色散点

我建议把你的第二个问题作为一个单独的问题发布,这个问题不是关于
matplotlib
,而是关于
pandas

plt.plot(X, linear_fn(X), '--k', color='red', label='Linear')
plt.plot(X, quadratic_fn(X), '--k', color = 'green', label='Quadratic')
plt.plot(X, order7_fn(X), '--k', color = 'purple', label='Order 7')
plt.scatter(X,Y, color = 'black', label = 'Original Data') # This line can also go first
plt.title('Training Data - Fits')
plt.legend()