python的meshgrid用法和3D库 mpl_toolkits.mplot3d 与PolynomialFeatures多项式库学习

python的meshgrid用法和3D库 mpl_toolkits.mplot3d 与PolynomialFeatures多项式库学习,第1张

python的meshgrid用法和3D库 mpl_toolkits.mplot3d 与PolynomialFeatures多项式库学习

meshgrid

 import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.array([,,])
y = np.array([,])
X,Y = np.meshgrid(x,y)#X,Y扩展成了矩阵,
print(X)
print(Y)
theta0, theta1, theta2 = , ,
ax = Axes3D(plt.figure())#用来画三维图
Z = theta0 + theta1*X + theta2*Y#求z值
plt.plot(X,Y,'r.')#此时你会发现绘画出的是3*2个点,这些点组成一个网格,切每个点的坐标是X*Y的笛卡尔
ax.plot_surface(X,Y,Z)#用来画三维图
plt.show()

具体也可以参考这篇博客

mpl_toolkits.mplot3d

关于3D绘图的博客

绘图时用到划分面板的方法

使用add_subplot

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(, )
fig = plt.figure()
ax1 = fig.add_subplot()
ax1.plot(x, x)
ax2 = fig.add_subplot()
ax2.plot(x, -x)
ax3 = fig.add_subplot()
ax3.plot(x, x ** )
ax4 = fig.add_subplot()
ax4.plot(x, np.log(x))
plt.show()

使用subplot方法

import numpy as np
from matplotlib import pyplot as plt
x = np.arange()
plt.subplot()
plt.plot(x,x)
plt.subplot()
plt.plot(x,-x)
plt.show()

PolynomialFeatures

 import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures#多项式
from sklearn.linear_model import LinearRegression # 载入数据
data = np.genfromtxt("job.csv", delimiter=",")
x_data = data[:,]
y_data = data[:,]
plt.scatter(x_data,y_data)
plt.show()
#维度必须是二维
x_data = x_data[:,np.newaxis]
y_data = y_data[:,np.newaxis]
# 定义多项式回归,degree的值可以调节多项式的特征
poly = PolynomialFeatures(degree=)
# 特征处理
x_poly = poly.fit_transform(x_data)
# 定义回归模型
model = LinearRegression()
# 训练模型
model.fit(x_poly,y_data)
plt.plot(x_data,y_data,'b.')
plt.plot(x_data,model.predict(poly.fit_transform(x_data)),'r')
plt.show()

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/588021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存