Web Dashboard

streamlit 의 다양한 UI 함수들 정리 3 - button, radio button, select button, multiselect, slider

yugyeong 2022. 12. 13. 11:54

button

st.button 을 이용하면, 버튼이 출력된다.

버튼을 클릭했을 때, 어떠한 값이 출력되도록 할때는 if 문을 이용하면 된다.

 

# 버튼을 클릭하면, 데이터프레임이 보이도록 만들기
    if st.button('데이터프레임 보기') :
        st.dataframe(df)


    name = 'Mike'     

    if st.button('대문자로') :
        st.text( name.upper() )


    if st.button('소문자로') :
        st.text( name.lower() )

 

위 코드를 실행시켰을 때의 결과이다.

 

 

radio button

- 여러 개의 항목 중에서 하나만 선택하도록 하는 버튼을 라디오 버튼

 

status = st.radio('정렬을 선택하세요', ['오름차순정렬', '내림차순정렬'] )

    if status == '오름차순정렬' :
        # df 의 petal_length 컬럼을 오름차순으로  정렬해서 보여주세요.
        st.dataframe(df['petal_length'].sort_values(ascending= True))

    elif status == '내림차순정렬':
        # df 의 petal_length 컬럼을 내림차순으로  정렬해서 보여주세요.
        st.dataframe(df['petal_length'].sort_values(ascending= False))

 

 

위 코드는, 라디오버튼을 클릭하여서 데이터프레임의 특정 열을 오름차순 또는 내림차순으로 정렬하는 코드이다.

 

 

check box

체크박스를 체크하면 데이터프레임이 나오고 , 해제하면 데이터프레임이 나오지 않게 설정한 코드이다.

 

 # 체크박스를 체크하면, 데이터프레임이 나오고
    # 해제하면, 데이터프레임이 나오지 않게

    if st.checkbox('show/hide') :
        st.dataframe(df)

    else :
        st.write('')

위 코드를 실행하면 아래와같은 결과값이 리턴된다.

 

select box

 

여러개 중에 한개를 선택하는 버튼을 만들때는 셀렉트 박스를 이용한다.

 

# 셀렉트박스 : 여러개 중에 한개 선택
    language = ['Python', 'C', 'JAVA', 'PHP', 'GO']

    my_choice = st.selectbox('좋아하는 언어를 선택하세요', language)

    # 유저가 선택하면, 해당 언어를 다음처럼 표시해준다.
    # 저는 Python 언어를 가장 좋아합니다.
    # 저는 JAVA 언어를 가장 좋아합니다.

    st.text('저는 '+ my_choice +' 언어를 가장 좋아합니다')

    # 만약 유저가 선택한 언어가 파이썬이나 php나, go 언어이면,
    # 배우기 쉽습니다. 라고 화면에 보여주고,
    # 자바나 씨언어를 선택하면, 배우기 어렵습니다 라고 화면에 보여주세요.

    if my_choice == 'Python'  or my_choice == 'PHP' or my_choice == 'GO' :
        st.text('배우기 쉽습니다')

    else :
        st.text('배우기 어렵습니다')

 

 

 

multiselect

 

여러개를 선택하게 할 때는 multiselect 를 이용한다.

 

# 여러개를 선택할 수 있게 하는 multiselect
    # 아이리스 데이터프레임의 컬럼이름을 가져오세요.

    selected_list = st.multiselect('원하는 컬럼을 선택하세요', df.columns)
    
    # 유저가 컬럼을 선택하면, 해당 컬럼을 화면에 보여주고,
    # 유저가 아무컬럼도 선택하지 않으면, 데이터프레임 보여주지 않는다.
    
    if selected_list :
        st.dataframe(df[selected_list]) 

    else :
        st.text('')

 

 

아래처럼 클릭한 컬럼들을 값으로 리턴해준다.

 

 

slider

 

슬라이더는 아래처럼 리턴된다.

파라미터에 min, max 값이 있어서 최소값과 최댓값을 직접 지정해줄 수 있고, step 은 얼만큼 값을 증가시킬지 정해준다.

value 는 기본 값을 의미한다.

 

# 슬라이더.
    
    age = st.slider('나이', 1, 100)
    st.text('당신이 선택한 나이는'+ str(age) + '입니다' )


    st.slider('데이터', 1, 100, step= 5)
    
    st.slider('데이터', 1, 200, value= 75)

    st.slider('데이터', 0.0, 1.0, step= 0.1)

 

 

 

expander

 

expander 는 with와 함께 쓰인다.

 

 with st.expander('hello') :
        st.text('안녕하세요')

 

 

아래같은 형태를 expander 라고 한다.