编写代码生成二维网格上的数据 Z = sin(X) * cos(Y) 并绘制其三维表面图和等高线图。X 和 Y 的范围均为 -pi 到 pi,网格大小为 100x100。
时间: 2024-11-04 13:13:48 浏览: 13
你可以使用Python语言中的matplotlib库以及numpy库来实现这个任务。首先,你需要导入所需的库,然后创建X和Y的网格,计算Z值,最后绘制三维表面图和等高线图。以下是一个简单的示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 定义X和Y的范围和网格大小
x = y = np.linspace(-np.pi, np.pi, 100)
X, Y = np.meshgrid(x, y)
# 计算Z值 (sin(X) * cos(Y))
Z = np.sin(X) * np.cos(Y)
# 创建一个3D图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 绘制三维表面图
ax.plot_surface(X, Y, Z, cmap='viridis')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.title('3D Surface Plot of Z = sin(X) * cos(Y)')
plt.show()
# 绘制等高线图
plt.figure()
CS = ax.contourf(X, Y, Z, 20, cmap='coolwarm')
ax.clabel(CS, fontsize=9, inline=1, fmt='%1.1f')
plt.title('Contour Plot of Z = sin(X) * cos(Y)')
plt.xlabel('X')
plt.ylabel('Y')
plt.colorbar()
plt.show()
#
阅读全文