【发布时间】:2020-12-31 20:55:40
【问题描述】:
我想编写一个代码,其中 matplotlib 中的动画函数仅在我单击 matplotlib 按钮小部件后才开始绘制。这是我的步骤:
- 我创建了一个空图。
- 我在激活点击事件的绘图上的任意位置按下鼠标,x 和 y 坐标存储在列表中。
- 我点击了运行动画功能的按钮。
- 动画函数使用存储的 x 和 y 坐标进行绘图。
我成功存储了 x 和 y 坐标,但按下按钮并没有给我所需的动画情节。这是我面临的第一个错误。
第二个错误是我的点击事件还存储了我按下按钮的坐标。我不希望在按钮按下期间坐标。我只是空地块上的坐标。
from matplotlib.widgets import Button
from matplotlib.animation import FuncAnimation
x_coord,y_coord = [],[]
fig = plt.figure()
axis = fig.add_subplot(111,xlim=(-5,15),ylim=(-5,15))
line, = axis.plot([],[],lw=3)
def init():
line.set_data([],[])
return line,
def animate(i):
x_points = [0,x_coord[i]]
y_points = [0,y_coord[i]]
line.set_data(x_points,y_points)
return line,
def onclick(event):
print(event.xdata,event.ydata)
x_coord.append(event.xdata)
y_coord.append(event.ydata)
def buttonPress(pressevent):
print('pressed')
print(x_coord)
ani = FuncAnimation(fig,animate,init_func=init,frames=len(x_coord),interval=100,blit=False)
cid = fig.canvas.mpl_connect('button_press_event',onclick)
axprev = plt.axes([0.5,0,0.1,0.1])
button = Button(axprev,'press')
button.on_clicked(buttonPress)
plt.show()```
【问题讨论】:
标签: python python-3.x matplotlib