1

给定 matplotlib 中的 3D 曲面图,它由 Z = a X+b y+d形式的平面描述。进一步给出一个滑块,通过它应该控制 Z 的 a 参数。到目前为止,我得到了以下代码:

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

x = np.linspace(-1,1,10)
y = np.linspace(-1,1,10)

X,Y = np.meshgrid(x,y)
Z=0.12861723162963065*X + 0.0014024845304814665*Y + 1.0964608113924048

fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z)


ax_a = plt.axes([0.25, 0.1, 0.65, 0.03])
s_a = Slider(ax_a, 'A', 0.1, 30.0, valinit=5)


def update(val):
    A = s_a.val
    Z1=A*X + 0.0014024845304814665*Y + 1.0964608113924048
    surf = ax.plot_surface(X, Y, Z1)
    fig.canvas.draw_idle()
s_a.on_changed(update)

plt.show()

到目前为止,它绘制了一个初始平面。如果滑块移动,它也会绘制新平面。但是,它不会删除 3D 图中的旧平面。

这里的问题是:移动滑块时如何“更新”到新平面?

此致

4

0 回答 0