问题描述
问题
我想显示一个链接到ipywidgets中的 Play 按钮的滑块,然后从matplotlib更新一个imshow
图。但是,我希望图像保留在那里,只绘制更改过的艺术家,而不必清除输出以再次绘制所有内容。 bqplot可以很好地处理这种情况,但是显示gridheatmap显示了编辑刻度标签和matplotlib可以很好处理的设计的其他部分的挑战。有些人使用了interact
,但是这种方法限制了我处理特征的自由。
我的代码
slider=wd.IntSlider(value=0,min=0,max=49,continuous_update=False)
play_button=wd.Play(
value=0,step=1,interval=850,description="Press play",disabled=False
)
def slider_update():
global im
global fig
slider.value=change.new
label.value="Time: {}".format(slider.value)
with out:
new_data=random_data[:,:,slider.value]
im.set_data(new_data)
im.set_clim(0,np.max(new_data))
background = fig.canvas.copy_from_bBox(ax.bBox)
fig.canvas.flush_events()
fig.canvas.restore_region(background)
ax.draw_artist(im)
fig.canvas.blit(ax.bBox)
plt.show(fig)
label=wd.Label("Time: 0")
# slider.observe(slider_update,"value")
wd.jslink((play_button,"value"),(slider,"value"))
widget=wd.interactive(slider_update,idx=slider)
out=wd.Output()
app=wd.VBox([wd.HBox([play_button,slider,label]),out])
display(app)
预期输出
但是图像只更新了关节,从而获得了平滑的动画效果(最后一张图像是通过display(app,fig)
来完成的,它不能满足我的要求。
有人可以帮忙吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)