【问题标题】:How to plot a one to many function on matplotlib in python如何在 python 中的 matplotlib 上绘制一对多函数
【发布时间】:2022-01-17 11:17:40
【问题描述】:

很简单,如果我绘制 x^2+y^2=z 它会在 python 上形成这个形状,它会形成这个形状:

当我想这样绘制时:

以下是我的代码,我是新人,所以我从互联网上复制了它,并更改了要绘制的函数的行。

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-4*np.pi,4*np.pi,50)
y = np.linspace(-4*np.pi,4*np.pi,50)
z = x**2+y**2
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(x,y,z)
plt.show()

还有,怎么做更高清更流畅,这是z=sin(x)的图

【问题讨论】:

    标签: python numpy matplotlib math plot


    【解决方案1】:

    您需要使用numpy.meshgrid 定义一个二维数学域,然后您可以计算该域上的表面:

    X, Y = np.meshgrid(x, y)
    
    Z = X**2 + Y**2
    

    为了增加表面的平滑度,您必须增加用于计算 xy 数组的点 N 的数量:

    完整代码

    import matplotlib.pyplot as plt
    import numpy as np
    
    N = 50
    
    x = np.linspace(-4*np.pi, 4*np.pi, N)
    y = np.linspace(-4*np.pi, 4*np.pi, N)
    
    X, Y = np.meshgrid(x, y)
    
    Z = X**2 + Y**2
    
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    
    ax.plot_surface(X, Y, Z)
    
    plt.show()
    

    【讨论】:

    • 谢谢它完美地工作!
    猜你喜欢
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    相关资源
    最近更新 更多