代码之家  ›  专栏  ›  技术社区  ›  Hussain Niazi

python-matplotlib-如何根据公式绘制平面?

  •  4
  • Hussain Niazi  · 技术社区  · 6 年前

    我有一个方程z=0.12861723162963065x+0.0014024845304814665y+1.096460813924048

    我需要用matplotlib在python中为这个方程绘制一个三维平面。我已经试过跟踪这个帖子了-- Given general 3D plane equation, how can I plot this in python matplotlib?

    但是,我不能设置这个平面的x,y和z极限。

    有人能给我提供把这个方程转换成三维平面的正确方法吗?谢谢

    1 回复  |  直到 6 年前
        1
  •  7
  •   Rory Daulton    6 年前

    你很容易理解,因为你的方程给出了 z的值,对于 x的任何值,都是 y的值。

    因此,请为 x和 y选择您喜欢的任何限制。你甚至可以使用你链接到的网页。只需根据公式计算 z values。以下是从链接页略微修改的代码:

    导入numpy as np 将matplotlib.pyplot导入为plt 从mpl_toolkits.mplot3d导入axes3d x=np.linspace(-1,1,10) y=np.linspace(-1,1,10) x,y=np.网格(x,y) Z=0.12861723162963065*X+0.0014024845304814665*Y+1.096460813924048 图=plt.图()) ax=图gca(投影='3d') surf=ax.绘制表面(x,y,z) < /代码>

    结果是:

    这不是最伟大的图表,但现在您可以修改一些参数,以获得您想要的结果。

    你喜欢的纽约限制 X Y . 你甚至可以使用你链接到的网页。只需计算 Z 根据你的方程式。以下是从链接页略微修改的代码:

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    x = np.linspace(-1,1,10)
    y = np.linspace(-1,1,10)
    
    X,Y = np.meshgrid(x,y)
    Z=0.12861723162963065*X + 0.0014024845304814665*Y + 1.0964608113924048
    
    fig = plt.figure()
    ax = fig.gca(projection='3d')
    
    surf = ax.plot_surface(X, Y, Z)
    

    结果是:

    enter image description here

    这不是最好的图,但是现在您可以修改一些参数来得到您想要的。