st.slider / st.selectSlider
源码路径:${python}\Lib\site-packages\streamlit\elements\slider.py(selectSlider.py)
st.slider
st.slider(label, min_value=None, max_value=None, value=None, \
step=None, format=None, key=None, help=None, on_change=None)
# `slider` 只接受数字或日期/时间数据并以范围作为输入
label:一个简短的标签,向用户解释此按钮的用途
min_value:最小允许值。如果值为 int,则默认为 0,如果为浮点数,则为 0.0,如果为日期/日期时间,则为 value - timedelta(days=14),如果为时间,则为 time.min
max_value:最大允许值。如果值为 int,则默认为 100,如果为浮点数,则为 1.0,如果为日期/日期时间,则为 value + timedelta(days=14),如果为时间,则为 time.max
value: 支持的类型或支持类型的元组/列表或 None 滑块首次呈现时的值。如果在此处传递一个包含两个值的元组/列表,则会呈现具有这些下限和上限的范围滑块。例如,如果设置为“(1, 10)”,滑块的可选范围将在 1 到 10 之间。默认为 min_value
step:int/float/timedelta 或 None 步进间隔。如果值为整数,则默认为 1,如果为浮点数,则默认为 0.01,如果是日期/日期时间,则默认为 0.01,如果是日期/日期时间,则默认为 timedelta(minutes=15)(或者如果 max_value - min_value < 1 天)
format: str 或 None 控制界面如何显示数字的 printf 风格的格式字符串。这不会影响返回值。 int/float 格式器支持:%d %e %f %g %i
key:一个可选的字符串或整数,用作小部件的唯一键。如果省略,将根据小部件的内容为小部件生成一个键。同一类型的多个小部件可能不会共享相同的密钥
help:当按钮悬停在上面时显示的可选工具提示。
on_change:当此复选框的值更改时调用的可选回调。
values = st.slider(
'Select a range of values',
0.0, 100.0, 25.0 #min_value=0.0, max_value=100.0, value=25.0
)
st.write('Values:', values)
#return a float
values = st.slider(
'Select a range of values',
0.0, 100.0, (25.0, 75.0) #min_value=0.0, max_value=100.0, value=(25.0,75.0)
)
st.write('Values:', values)
#return a tuple
values3 = st.slider(
'Select a range of values',
0.0, 100.0, [26.0, 78.0],
)
st.write('Values:', values3)
#return a tuple
# 如果第二个和第三个是(25.0, 75.0),[25.0, 75.0],那需要加上不同的key,否则会报错widgets with the same generated key
values = st.slider(
'Select a range of values',
0.0, 101.0, 26.0, #min_value=0.0, max_value=100.0, value=25.0
step = 1.0,
format="%d"
)
st.write('Values:', values)
#格式化字符串,但最后返回的还是一个float
time slider
from datetime import time
appointment = st.slider(
"Schedule your appointment:",
value=(time(11, 30), time(12, 45)))
st.write("You're scheduled for:", appointment)
datetime slider
from datetime import datetime, timedelta
start_time = st.slider(
"When do you start?",
datetime(2020, 1, 1, 9, 30),
datetime(2021, 12, 31, 11, 59),
value=datetime(2020, 5, 1, 9, 30),
step=timedelta(minutes=60), #每个小时
format="MM-DD-YY hh:mm")
st.write("Start time:", start_time)
st.select_slider
st.select_slider(label, options=OptionSequence, value=None, \
format_func="", key=None, help=None, on_change=None)
#`select_slider` 接受任何数据类型并采用一组可迭代的选项
genre = st.select_slider(
"What's your Select",
['old big', 'old two', 'old three'],
value='old two'
)
st.write('You selected {}.'.format(genre))
#看起来怪怪的
@st.cache
def xiushi(x):
return "hehe-"+str(x)
@st.cache
def testSelectBox():
data_frame = pd.DataFrame({
'first column': [1, 2, 3, 4, 6, 8, 10],
'second column': [10, 20, 30, 40, 50 , 60 , 80],
}, index= ['index1','index2','index3','index4','index5','index6','index7'])
return data_frame
df = testSelectBox()
st.dataframe(df)
genre = st.select_slider(
"What's your Select",
df['second column'],
format_func=lambda x: xiushi(x)
)
st.write('You selected {}.'.format(genre))
#感觉意义不大呀。