I am trying to plot a point whose position is controlled by a slider. However, each time the slider is moved a new point is plotted without deleting the old one. How do you remove the old point before the new one is plotted?
from mpl_toolkits.mplot3d import Axes3D from matplotlib import pyplot from matplotlib import pyplot as plt from matplotlib.widgets import Slider def on_change(val): point=ax.scatter(x[int(val)/1],y[int(val)/1],z[int(val)/1]) x=[0,0.5,1] y=[0,0.5,1] z=[0,0.5,1] p=0 fig = pyplot.figure() ax = fig.add_subplot(111, projection='3d') ax.plot([0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0],[0,1,1,0,0,0,0,0,1,1,0,0,1,1,1,1],[0,0,1,1,0,0,1,1,1,1,1,0,0,1,0,0],c='black',zorder=10) point=ax.scatter(x[p],y[p],z[p],zorder=0) ax.set_xlabel('Width') ax.set_ylabel('Depth') ax.set_zlabel('Height') slider_ax = plt.axes([0.15, 0.05, 0.7, 0.02]) slider = Slider(slider_ax, "min", 0, 2, valinit=1, color='blue') slider.on_changed(on_change) pyplot.show()
PathCollectionreturned byscatterdefinitely has aremovemethod.