我正在制作一个交互式图表。选项之一是选择房子的房间数量。现在,如果您在def coroutine(func):
def primed(*args, **kwargs):
coro = func(*args, **kwargs)
next(coro)
return coro
return primed
def source(name, target):
for x in range(1,4):
target.send(f'{name}{x}')
config = {
'filter1': '_F1',
'filter2': '_F2',
'filter3': '_F3',
}
@coroutine
def filter1(target, **config):
"""This coroutine only consumes"""
while True:
data = yield
target.send(data + config['filter1'])
@coroutine
def filter2(target, **config):
"""This coroutine only consumes"""
while True:
data = yield
target.send(data + config['filter2'])
@coroutine
def filter3(target, **config):
"""This coroutine only consumes"""
while True:
data = yield
target.send(data + config['filter3'])
@coroutine
def writer(where):
while True:
data = yield
print(f'writing to {where}: {data}')
def pipeline():
f3 = filter3(writer('console'), **config)
f2 = filter2(f3, **config)
f1 = filter1(f2, **config)
source('data', f1)
pipeline()
参数中输入大于5的数字,则该图将始终显示具有5个或更多房间的房屋的数据。所以我建造了这个
n_rooms
问题是,这将显示一个从1到5的滑块。我要更改的唯一事情是,它不显示“ 5”,而是显示“ 5或更大”。有什么办法吗? 谢谢
答案 0 :(得分:0)
使用selection slider来同时使用滑块中的整数和字符串。
num_rooms = widgets.SelectionSlider(
options=['1', '2', '3', '4', '5 or more'],
value='1',
description='number of rooms:',
disabled=False,
continuous_update=False,
orientation='horizontal',
readout=True )
答案 1 :(得分:0)
就我而言(主要显示科学数据),定义一个 Text
小部件并将其与滑块一起使用会很有帮助。您只需设置 readout=False
并使用 HBox
。例如,我在 intensities
中存储了一些场强:
fs = IntSlider(
description='fs: ',
value=0, min=0, max=len(ints)-1,
readout=False
)
fs_text = Text(value=f'{ints[0]:.1f}V/nm', description='', layout=Layout(width='80px'))
# ...
# do some updates
# ...
HBox([fs, fs_text])
在这种情况下,您可以随意使用更新函数中的 Text
文本。