Python 制作三维和二维方程
我通过以下麻省理工学院课程学习线性回归: 20:52我想用Python制作一个3D图像。我得到以下错误消息: 'ValueError:输入操作数的维数超过轴重新映射允许的维数' 以下是我正在使用的代码:Python 制作三维和二维方程,python,image,matplotlib,linear-regression,Python,Image,Matplotlib,Linear Regression,我通过以下麻省理工学院课程学习线性回归: 20:52我想用Python制作一个3D图像。我得到以下错误消息: 'ValueError:输入操作数的维数超过轴重新映射允许的维数' 以下是我正在使用的代码: import matplotlib as mpl from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np mpl.rcParams['legend.fonts
import matplotlib as mpl
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
mpl.rcParams['legend.fontsize'] = 10
fig = plt.figure()
ax = fig.gca(projection='3d')
z = np.array([[0],[-1.],[4]])
x = np.array([[2.],
[-1.]
[0]])
y = np.array([[-1.],[2.],[-3.]])
ax.plot(x, y, z, label='linear')
ax.legend()
A=np.array([[2.,-1.,0.],
[-1.,2.,-1.],
[0.,-3.,4.]])
b=np.array([[0.],
[-1.],
[4.]])
plt.show()
如果您只想制作一个三维散点图,下面是使用您的数据的示例代码
大家好,欢迎来到SO。请花时间阅读本节,以了解如何发布一个好问题,以便社区能够帮助您。请编辑您的帖子并添加一个和您可能得到的任何错误或日志。实际上,我想通过MathPlotLib制作关于2x-y=0,-x+2+-z=-1,-3y+4z=4的3equation。如果您可以提供形式为“z=f(x,y)”的方程式,我可以提供带有3D散点图、3D曲面图、等高线图的Python曲面拟合代码示例,拟合RMSE和R平方的统计数据,然后将其添加到我的答案中。非常感谢james。请给我3个坐标(xyz)的三维散点图(2x-y=0,-x+2y-z=-1,-3y+4z=4)。这不是我要求的“z=f(x,y)”形式。
import numpy, scipy, scipy.optimize
import matplotlib
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm # to colormap 3D surfaces from blue to red
import matplotlib.pyplot as plt
xData = numpy.array([2., -1., 0], dtype=float) # dtype ensures floating point numbers
yData = numpy.array([-1.,2.,-3.], dtype=float)
zData = numpy.array([0, -1., 4], dtype=float)
graphWidth = 800 # units are pixels
graphHeight = 600 # units are pixels
# 3D contour plot lines
numberOfContourLines = 16
def ScatterPlot(data):
f = plt.figure(figsize=(graphWidth/100.0, graphHeight/100.0), dpi=100)
matplotlib.pyplot.grid(True)
axes = Axes3D(f)
x_data = data[0]
y_data = data[1]
z_data = data[2]
axes.scatter(x_data, y_data, z_data)
axes.set_title('Scatter Plot (click-drag with mouse)')
axes.set_xlabel('X Data')
axes.set_ylabel('Y Data')
axes.set_zlabel('Z Data')
plt.show()
plt.close('all') # clean up after using pyplot or else there can be memory and process problems
if __name__ == "__main__":
data = [xData, yData, zData]
ScatterPlot(data)