Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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_Image_Matplotlib_Linear Regression - Fatal编程技术网

Python 制作三维和二维方程

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

我通过以下麻省理工学院课程学习线性回归:

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.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)