gpt4 book ai didi

python - 将小部件连接到绘图

转载 作者:太空宇宙 更新时间:2023-11-03 21:37:08 24 4
gpt4 key购买 nike

我正在尝试使用 ipywidget play 创建随 slider 变化的动画。但是,它只传递初始值而不更新,我该如何解决这个问题?

from matplotlib import pyplot as plt
import numpy as np
import mpl_toolkits.mplot3d.axes3d as p3
from matplotlib import animation
import mpl_toolkits.mplot3d.art3d as art3d
%config InlineBackend.figure_format = 'svg'
%matplotlib notebook
import ipywidgets as widgets
from ipywidgets import HBox, VBox, interact, interactive, fixed,
interact_manual
from IPython.display import display

play = widgets.Play(
interval=10,
value= 0,
min=0,
max=100,
step=1,
description="Press play",
disabled=False
)

slider = widgets.IntSlider()
widgets.jslink((play, 'value'), (slider, 'value'))
widgets.HBox([play, slider])

display(play, slider)

fig = plt.figure()
ax = p3.Axes3D(fig)

x = np.linspace(-1,1,100)
y = np.linspace(-1,1,100)
ax.plot(x, y, x*y * slider.value, lw = '2')
plt.show()

最佳答案

正如 ImportanceOfBeingErnest 所提到的,您需要一个函数来使用 "interact"为了使小部件与绘图交互

from matplotlib import pyplot as plt
import numpy as np
import mpl_toolkits.mplot3d.axes3d as p3
from matplotlib import animation
import mpl_toolkits.mplot3d.art3d as art3d
%config InlineBackend.figure_format = 'svg'

import ipywidgets as widgets
interact_manual
from IPython.display import display

play = widgets.Play(
interval=10,
value= 0,
min=0,
max=100,
step=1,
description="Press play",
disabled=False
)

slider = widgets.IntSlider()
widgets.jslink((play, 'value'), (slider, 'value'))
ui = widgets.HBox([play])

def f(slider):
fig = plt.figure()
ax = p3.Axes3D(fig)
x = np.linspace(-1,1,100)
y = np.linspace(-1,1,100)
ax.plot(x, y, x*y * slider, lw = '2')
plt.show()
return

display(ui)

interact(f,slider=slider)

关于python - 将小部件连接到绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53179473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com