Перерисовка самолета с помощью ползунка - PullRequest
0 голосов
/ 19 октября 2018

Учитывая трехмерный график поверхности в matplotlib, который описывается плоскостью в виде Z = a X + b y + d.Далее дан слайдер, с помощью которого должен контролироваться a-параметр Z.До сих пор я получил следующий код:

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()

Он пока показывает начальную плоскость.Он также рисует новые плоскости, если ползунок перемещен.Однако он не удаляет старые плоскости на трехмерном графике.

Вопрос здесь заключается в следующем: как я могу «обновиться» до новой плоскости при каждом перемещении ползунка?

С уважением

...