3.在xy平面内选择区域[-8,8]×[-8,8],利用mesh、surf绘制。要求用子图在一个图形窗口中绘制。
时间: 2024-09-18 11:15:37 浏览: 64
在Python中,你可以使用matplotlib库中的`subplots`函数创建一个包含多个子图的图形窗口,并结合`mplot3d`模块中的`Axes3D`来绘制三维曲面。如果你想要在xy平面上选择一个区域[-8,8]x[-8,8],并且使用`meshgrid`生成网格数据,然后通过`surf`函数绘制二维表面,可以按照以下步骤操作:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 定义绘图区域
x = y = np.linspace(-8, 8, 100) # 创建等差数组,范围从-8到8,步长为0.01
# 使用meshgrid生成二维网格数据
X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2 # 可以自定义为任意数学函数
# 创建一个大小为1x1的子图,用于放置3D图形
fig, ax = plt.subplots(nrows=1, ncols=1, subplot_kw={'projection': '3d'})
# 绘制曲面
ax.plot_surface(X, Y, Z, cmap='viridis') # 使用viridis颜色映射
# 设置轴标签和标题
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z^2')
ax.set_title('Surface Plot in [-8, 8] x [-8, 8]')
# 显示图形
plt.show()
阅读全文