从matplotlib曲面图中删除特定点可以通过以下步骤实现:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 创建数据集
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 创建曲面图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')
# 删除特定点
indices_to_remove = [(i, j) for i in range(len(x)) for j in range(len(y)) if x[i] > 2 and y[j] < -2]
X = np.delete(X, indices_to_remove)
Y = np.delete(Y, indices_to_remove)
Z = np.delete(Z, indices_to_remove)
# 更新曲面图
ax.clear()
ax.plot_surface(X, Y, Z, cmap='viridis')
完整代码示例:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 创建数据集
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 创建曲面图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')
# 删除特定点
indices_to_remove = [(i, j) for i in range(len(x)) for j in range(len(y)) if x[i] > 2 and y[j] < -2]
X = np.delete(X, indices_to_remove)
Y = np.delete(Y, indices_to_remove)
Z = np.delete(Z, indices_to_remove)
# 更新曲面图
ax.clear()
ax.plot_surface(X, Y, Z, cmap='viridis')
plt.show()
这样,特定点将从曲面图中被删除。请注意,这只是一个示例,你可以根据自己的需求和特定点的条件进行修改。
领取专属 10元无门槛券
手把手带您无忧上云