gpt4 book ai didi

python-2.7 - ipywidgets:如何在两列中组织 slider

转载 作者:行者123 更新时间:2023-12-02 17:17:37 34 4
gpt4 key购买 nike

我正在尝试弄清楚如何在两列(或更多列)中显示 ipywidgets 的 slider 。有没有人举个例子如何去做?我的代码(在 jupyter notebook 中)现在如下:

import matplotlib.pylab as plt
import numpy as np
from ipywidgets import interact,FloatSlider,IntSlider
%matplotlib inline
def plotPP(p,p_LP,Tperiods):
t=np.linspace(0,Tperiods*(np.pi*2),1000)
f = plt.figure(figsize=(1.618*6,6))
p_t = p*(1.0+np.cos(t))
plt.plot(t,p_t,'b',lw=2.0)
plt.axhline(p_LP,color='r',lw=2.0)
plt.xlim([t[0],t[-1]])
plt.ylim([min(p_LP,np.amin(p_t))-0.1,np.amax(p_t)+0.1])
plt.ylabel(r'$p$')
plt.xlabel(r'$t$')

p_s = FloatSlider(min=0, max=2, step=0.01, value=1.0)
p_LP_s = FloatSlider(min=0, max=2., step=0.01, value=0.481343)
Tperiods_s= IntSlider(min=1,max=10,value=1)
interact(plotPP,p=p_s,p_LP=p_LP_s,Tperiods=Tperiods_s)

并且它显示三个 slider 一个在另一个之上:enter image description here

最佳答案

有几个你可以根据你想做什么来实现。他们最容易想到的是使用 interactive 而不是 interact 以及 HBoxIPython.display.display .此解决方案的唯一问题是您可能必须在看到图形之前开始移动 silders。

from IPython.display import display
import matplotlib.pylab as plt
import numpy as np
from ipywidgets import interact,FloatSlider,IntSlider,interactive,HBox
%matplotlib inline
def plotPP(p,p_LP,Tperiods):
t=np.linspace(0,Tperiods*(np.pi*2),1000)
f = plt.figure(figsize=(1.618*6,6))
p_t = p*(1.0+np.cos(t))
plt.plot(t,p_t,'b',lw=2.0)
plt.axhline(p_LP,color='r',lw=2.0)
plt.xlim([t[0],t[-1]])
plt.ylim([min(p_LP,np.amin(p_t))-0.1,np.amax(p_t)+0.1])
plt.ylabel(r'$p$')
plt.xlabel(r'$t$')

p_s = FloatSlider(min=0, max=2, step=0.01, value=1.0)
p_LP_s = FloatSlider(min=0, max=2., step=0.01, value=0.481343)
Tperiods_s= IntSlider(min=1,max=10,value=1)

ip = interactive(plotPP,p=p_s,p_LP=p_LP_s,Tperiods=Tperiods_s)
display(HBox(ip.children[:-1]))#Show all controls
display(ip.children[-1])#Show the output

如果这不清楚或对您不起作用,请在下方评论。

关于python-2.7 - ipywidgets:如何在两列中组织 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45440253/

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