웹대시보드 개발

웹대시보드 개발(6) 스트림릿의 다양한 UI 함수(3)

개발연습자1 2022. 12. 13. 11:19

스트림릿에서 웹브라우저로 화면을 띄우는 방법을 알았지만 화면에 '버튼'이 없기 때문에 여러가지 버튼을 생성하는 함수들을 알아보겠다.

 

1) 기본 버튼

기본 버튼은 버튼을 클릭만하면 결과가 나오겠끔 하는 함수이다.

 

import streamlit as st


#버튼을 클릭하면, 데이터프레임이 보이도록 만들기

    name = 'Mike'

#이름인 Mike를 버튼을 통해 대소문자로 표현

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

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

if __name__ == '__main__' :
    main()

 

대문자,소문자 버튼이 눌리면 사람 이름이 대문자,소문자로 바뀌게 된다.

 

 

2) 셀럭트 박스

여러개 선택지 중에 하나를 선택하는 버튼이다.

import streamlit as st

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

    my_choice = st.selectbox('좋아하는 언어를 선택하세요',language)
    # 유저가 선택하면, 해당 언어를 다음처럼 표시해준다.
    # 저는 Python 언어를 가장 좋아합니다.
    # 저는 JAVA 언어를 가장 좋아합니다.

    st.write('저는 {} 언어를 가장 좋아합니다.'.format(my_choice))

    st.text('저는'+my_choice+'언어를 가장 좋아합니다.')
    
if __name__ == '__main__' :
    main()

 

이렇게 선택하여 결과를 알수가 있다.

 

3) 체크 박스

기본 버튼과 마찬가지로 누르면 실행되지만 이 체크 박스는 화면을 숨기거나 표시할때 사용된다

 

#판다스의 데이터프레임을, 웹화면으로 보여주는 방법

import streamlit as st
import pandas as pd

def main():
	    st.title('아이리스 꽃 데이터')

        df=pd.read_csv('streamlit_data/iris.csv')
        
        if st.checkbox('show/hide') :
        st.dataframe(df)
        
if __name__ == '__main__' :
    main()

 

4) 라디오 버튼

 

체크박스와 동일하나 화면 표시를 어떻게 할것인지 상태를 설정할때 사용된다.  

#판다스의 데이터프레임을, 웹화면으로 보여주는 방법

import streamlit as st
import pandas as pd

def main():
	    st.title('아이리스 꽃 데이터')

        df=pd.read_csv('streamlit_data/iris.csv')
        
        status =st.radio('정렬을 선택하세요',['오름차순정렬','내림차순정렬'])

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

        
if __name__ == '__main__' :
    main()

 

5)  셀렉트 박스 

 

   여러개의 선택지 중에 1개를 선택하게 해주는 버튼이다.

#판다스의 데이터프레임을, 웹화면으로 보여주는 방법

import streamlit as st
import pandas as pd

def main():

        language = ['Python','c','JAVA','PHP','GO']
        my_choice = st.selectbox('좋아하는 언어를 선택하세요',language)
        # 유저가 선택하면, 해당 언어를 다음처럼 표시해준다.
        # 저는 Python 언어를 가장 좋아합니다.
        # 저는 JAVA 언어를 가장 좋아합니다.

        st.write('저는 {} 언어를 가장 좋아합니다.'.format(my_choice))

        st.text('저는'+my_choice+'언어를 가장 좋아합니다.')
       
        
        
if __name__ == '__main__' :
    main()

   

 

6) 멀티 셀렉트

   멀티 셀렉트는 주어진 선택지를 여러개 선택할수 있는 함수이다.

#판다스의 데이터프레임을, 웹화면으로 보여주는 방법

import streamlit as st
import pandas as pd

def main():
	    st.title('아이리스 꽃 데이터')

        df=pd.read_csv('streamlit_data/iris.csv')
        
        selected_list=st.multiselect('원하는 컬럼을 선택하세요',df.columns)
        
        
if __name__ == '__main__' :
    main()

 

7) 슬라이더 

 

슬라이더로 각종 파라미터를 조절할 수 있다.

#판다스의 데이터프레임을, 웹화면으로 보여주는 방법

import streamlit as st
import pandas as pd

def main():
         
    age = st.slider('나이',1,100)

    st.text('당신이 선택한 나이는'+str(age)+'입니다.')

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

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

        
        
if __name__ == '__main__' :
    main()

반응형