Python - 设计一个滑块来控制一个函数的输入
Python - design a slider to control the input of a function
我有以下代码
def update(val):
if val == 0:
value = s.val
ax1.cla()
ax1.plot_surface(x, y, rm, cmap = cm.coolwarm, linewidth = 0, antialiased = False)
elif val == 1:
value = s.val
ax1.cla()
ax1.plot_surface(x, y, rm1, cmap = cm.coolwarm, linewidth = 0, antialiased = False)
elif val == 2:
value = s.val
ax1.cla()
ax1.plot_surface(x, y, rm2, cmap = cm.coolwarm, linewidth = 0, antialiased = False)
ax1.set_zlim(-110, -80)
slider = wg.IntSlider(value=1, min=1, max=3, description='this is slider')
slideroutput = wg.Output()
display(slider, slideroutput)
def on_value_change(change):
with slideroutput:
print(change['new'])
slider.observe(on_value_change, names='value')
update(slideroutput)
plt.show()
如果更新的输入是“i”,则显示更新函数定义中的第i个3D图形,其中i = 1,2,3。
如何设计一个滑块,当我移动滑块的控制按钮时,滑块的输出为1、2或3,将成为“更新”的输入?
例如
update(slider_button)
谢谢!
这是您正在寻找的功能:
import ipywidgets as wg
slider = wg.IntSlider(value=1, min=1, max=3, description='this is slider')
slideroutput = wg.Output()
display(slider, slideroutput)
def on_value_change(change):
with slideroutput:
print(change['new'])
slider.observe(on_value_change, names='value')
但是,我强烈建议您寻找其他选择(例如:下拉列表或按钮而不是滑块)。滑块使用 .observe
。这导致程序非常繁重,尤其是与 3D 绘图相关联使用时。上面的代码只有简单的打印命令,然而,你可以看到它并不运行那么流畅。你可以想象如果和3D plot联动那该有多惨
---编辑---
numberonslider = []
def on_value_change(change):
with slideroutput:
numberonslider.append(change['new'])
print(numberonslider[-1])
slider.observe(on_value_change, names='value')
我有以下代码
def update(val):
if val == 0:
value = s.val
ax1.cla()
ax1.plot_surface(x, y, rm, cmap = cm.coolwarm, linewidth = 0, antialiased = False)
elif val == 1:
value = s.val
ax1.cla()
ax1.plot_surface(x, y, rm1, cmap = cm.coolwarm, linewidth = 0, antialiased = False)
elif val == 2:
value = s.val
ax1.cla()
ax1.plot_surface(x, y, rm2, cmap = cm.coolwarm, linewidth = 0, antialiased = False)
ax1.set_zlim(-110, -80)
slider = wg.IntSlider(value=1, min=1, max=3, description='this is slider')
slideroutput = wg.Output()
display(slider, slideroutput)
def on_value_change(change):
with slideroutput:
print(change['new'])
slider.observe(on_value_change, names='value')
update(slideroutput)
plt.show()
如果更新的输入是“i”,则显示更新函数定义中的第i个3D图形,其中i = 1,2,3。
如何设计一个滑块,当我移动滑块的控制按钮时,滑块的输出为1、2或3,将成为“更新”的输入?
例如
update(slider_button)
谢谢!
这是您正在寻找的功能:
import ipywidgets as wg
slider = wg.IntSlider(value=1, min=1, max=3, description='this is slider')
slideroutput = wg.Output()
display(slider, slideroutput)
def on_value_change(change):
with slideroutput:
print(change['new'])
slider.observe(on_value_change, names='value')
但是,我强烈建议您寻找其他选择(例如:下拉列表或按钮而不是滑块)。滑块使用 .observe
。这导致程序非常繁重,尤其是与 3D 绘图相关联使用时。上面的代码只有简单的打印命令,然而,你可以看到它并不运行那么流畅。你可以想象如果和3D plot联动那该有多惨
---编辑---
numberonslider = []
def on_value_change(change):
with slideroutput:
numberonslider.append(change['new'])
print(numberonslider[-1])
slider.observe(on_value_change, names='value')