#python #jupyter-notebook #ipywidgets
#python #jupyter-ноутбук #ipywidgets
Вопрос:
Я работаю над интерактивным графиком. Одним из вариантов является выбор количества комнат для дома. Прямо сейчас, если вы введете любое число выше 5 в n_rooms
аргумент, на графике всегда будут отображаться данные для домов, в которых 5 или более комнат. Итак, я создал это
n_rooms = widgets.IntSlider(
min=1,
max=5,
description='number of rooms:',
layout=Layout(width='30%'),
style=style,
disabled=False)
Дело в том, что это покажет ползунок, который переходит от 1 к 5. Единственное, что я хочу изменить, это то, что вместо отображения «5» отображается «5 или более». Есть ли какой-либо способ сделать это?
Спасибо
Ответ №1:
Используйте ползунок выделения, чтобы использовать как целые числа, так и строки в ползунках.
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 )
Ответ №2:
В моем случае (в основном для отображения научных данных) полезно определить 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
в вашей функции обновления.