在 matplotlib 中使用带有 x 和 y 的方程和 Python 的 3D 绘图

Posted

技术标签:

【中文标题】在 matplotlib 中使用带有 x 和 y 的方程和 Python 的 3D 绘图【英文标题】:3D plot in matplotlib using equation with x and y with Python 【发布时间】:2022-01-02 09:34:09 【问题描述】:

我想从一个带有 x 和 y 的方程创建一个 3D 图,类似于 Google 的 3D 图。

一个例子:

输入:sin(sqrt(x**2 + y**2))

输出(3D 图):

Z 显然等于给定的输入,但是如何计算 xy?感谢您提供的任何帮助!

【问题讨论】:

【参考方案1】:

您可以先为您的XY 创建一个meshgrid。然后通过执行Z=np.sin(np.sqrt(X**2 + Y**2)) 计算您的Z。最后,您可以使用matplotlib函数ax.plot_surface(X, Y, Z)绘制曲面。

您可以在下面找到代码:

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

N_points=100
x = np.linspace(-10, 10, N_points)  
y = np.linspace(-10, 10, N_points)  
  
X, Y = np.meshgrid(x, y)
Z=np.sin(np.sqrt(X**2 + Y**2))

fig = plt.figure()
ax = fig.add_subplot(projection='3d')

ax.plot_surface(X, Y, Z)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

这段代码的输出给出:

【讨论】:

以上是关于在 matplotlib 中使用带有 x 和 y 的方程和 Python 的 3D 绘图的主要内容,如果未能解决你的问题,请参考以下文章

使用带有字典的matplotlib在python中绘制散点图

Matplotlib - plot_surface : 获取写在右下角的 x,y,z 值

使用共享 x 轴合并 matplotlib 子图

matplotlib交换x和y轴

Matplotlib:带有第二个 y 轴的 imshow

如何在 tkinter 中更新由 matplotlib 创建的图形