一个 3D 函数的表面图,其中包含向量场。
Python 代码示例,使用 matplotlib 和 numpy 库来绘制类似的图。
python
复制代码
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 生成网格
x = np.linspace(-5, 5, 50)
y = np.linspace(-5, 5, 50)
X, Y = np.meshgrid(x, y)
Z = np.exp(-((X - 2) ** 2 + (Y - 2) ** 2)) + np.exp(-((X + 2) ** 2 + (Y + 2) ** 2)) + np.exp(-((X - 2) ** 2 + (Y + 2) ** 2))# 计算梯度 (向量场)
U, V = np.gradient(Z)# 创建3D图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')# 绘制表面图
ax.plot_surface(X, Y, Z, cmap='Reds', edgecolor='none', alpha=0.8)# 绘制向量场
ax.quiver(X, Y, Z, U, V, 0, color='black', length=0.1)# 隐藏坐标轴
ax.set_xticks([])
ax.set_yticks([])
ax.set_zticks([])
ax.set_axis_off()# 设置视角
ax.view_init(elev=30, azim=60)plt.show()
效果图如下