스트림릿(streamlit)의 다양한 UI 함수들 정리 1
바로가기 리스트!! |
|
글자 출력하기 |
파이썬 데이터프레임 출력 [Dataframe] |
버튼 만들기 [Button] |
라디오 버튼 만들기 [Radio Button] |
체크 박스 만들기 [Check Box] |
셀렉트 박스 만들기 [select Box] |
1. 글자 출력하기
st.title() : 제목같은 큰 글씨 |
st.subheader() : 제목보다 작은 글씨 |
st.text() : 기본 작은 글씨 |
import streamlit as st
def main() :
st.title('웹 대시보드')
name = '주일룡'
st.text('제 이름은 {} 입니다.'.format(name)) # 작은 글씨
st.header('이 영역은 헤더 영역') # 제목같은 큰 글씨
st.subheader('이 영역은 subheader영역') # 제목보다는 작은 글씨
st.success('작업이 성공했을때 사용하자') # 녹색 영역
st.warning('경고 문구를 보여주고 싶을때 사용하자') # 노란색 영역
st.info('정보를 보여주고 싶을때 사용하자') # 파란색 영역
st.error('문제가 발생했을때 사용') # 레드 영역
# 파이썬의 함수 사용법을 보여주고 싶을때
st.help(sum) # 함수 설명을 보여주고 싶을때 (sum)
st.help(len)
if __name__ == '__main__' :
main()
[결과]
2. 데이터프레임(DataFrame) 출력하기
st.dataframe() |
데이터프레임을 출력할때는
스트림릿의 dataframe() 함수를
이용합니다.
뒤에 변수명 df는
CSV 파일을 불러오는
명령어가 담긴 변수입니다.
import streamlit as st # 스트림릿 호출
import pandas as pd # 판다스 호출
def main() :
df = pd.read_csv('data2/iris.csv') # CSV 파일 불러오고 df 변수에 저장
st.dataframe(df)
species = df['species'].unique()
st.text('아이리스 꽃은 ' + species + '으로 되어있다.')
df.head()
st.dataframe( df.head() )
st.write( df.head() )
if __name__ == '__main__' :
main()
웹에서 데이터프레임 데이터를
5개까지 보여주기는
st.dataframe( df.head() ) 코딩!
이는 st.write( df.head() ) 로도
사용할 수 있습니다.
[결과]
3. 버튼(button) 만들기
st.button() |
스트림릿의 button() 함수를 이용해
버튼을 만들수 있습니다.
버튼을 누르면 True를 리턴합니다.
import streamlit as st
def main() :
st.title('버튼 만들기')
st.button('버튼 클릭!')
if __name__ == "__main__" :
main()
[결과]
ex) 응용하기!
'대문자' 버튼을 누르면
species 컬럼의 값들을 대문자로
변경한 데이터프레임을 보여줍니다.
import streamlit as st
import pandas as pd
def main() :
df = pd.read_csv('data2/iris.csv')
st.dataframe(df)
# "대문자" 버튼을 만들고
# 버튼을 누르면, species 컬럼의 값들을 대문자로 변경한
# 데이터 프레임을 보여주세요.
if st.button('대문자') :
df['species'] = df['species'].str.upper()
st.dataframe(df)
if __name__ == "__main__" :
main()
[결과]
4. 라디오(radio) 버튼 만들기
st.radio() |
라디오 버튼은 여러개 중에서
하나를 선택할때 사용합니다.
radio() 함수를 이용!
라디오버튼을 클릭하면
클릭했을때 나타나는 문자열을
리턴해 줍니다.
import streamlit as st
import pandas as pd
def main() :
df = pd.read_csv('data2/iris.csv')
# st.dataframe(df)
my_order = ['오름차순정렬', '내림차순정렬']
status = st.radio('정렬방법 선택', my_order)
# 첫번째 방법
if status == my_order[0] :
# petal_length 칼럼을 오름차순으로 정렬해서 화면에 보여준다.
# df.sort_values('petal_length')
st.dataframe(df.sort_values('petal_length'))
elif status == my_order[1] :
# df.sort_values('petal_length', ascending=False)
st.dataframe(df.sort_values('petal_length', ascending=False))
# 두번째 방법 (버튼을 똑같은거 쓰면 에러남)
status = st.radio('정렬방법 선택2', my_order)
if status == my_order[0] :
# petal_length 칼럼을 오름차순으로 정렬해서 화면에 보여준다.
df = df.sort_values('petal_length')
st.dataframe(df)
elif status == my_order[1] :
df = df.sort_values('petal_length', ascending=False)
st.dataframe(df)
if __name__ == "__main__" :
main()
위 코딩에서 첫번째 방법, 두번째 방법
결과는 모두 같습니다.
[결과]
5. 체크박스 만들기
st.checkbox() |
스트림릿의 checkbos() 함수를
이용합니다.
체크 해제/ 체크
두 동작중 하나를 합니다.
체크하면 True 가 됩니다.
True/False 값을 리턴 합니다.
import streamlit as st
import pandas as pd
def main() :
df = pd.read_csv('data2/iris.csv')
# st.dataframe(df)
# 체크박스 : 체크 해제/ 체크
# 두개 동작중 하나를 한다. 체크하면 TRUE가 된다.
if st.checkbox('헤드 5개 보기') :
st.dataframe( df.head() )
else :
st.text('헤드 숨겼습니다.')
if __name__ == "__main__" :
main()
[결과]
6. 셀렉트박스 만들기
st.selectbox() |
셀렉트박스튼 여러개 중에서
1개만 고르는 UI 입니다.
선택한 문자열을 리턴합니다.
import streamlit as st
def main() :
language = ['Python', 'C', 'Java', 'Go', 'PHP']
my_choice = st.selectbox('좋아하는 언어 선택', language)
if my_choice == language[0] :
st.write('파이썬을 선택하셨습니다.')
elif my_choice == language[1] :
st.write('C언어를 선택하셨습니다.')
elif my_choice == language[2] :
st.write('자바를 선택하셨습니다')
elif my_choice == language[3] :
st.write('Go를 선택하셨습니다')
elif my_choice == language[4] :
st.write('PHP를 선택하셨습니다')
if __name__ == "__main__" :
main()
[결과]

힐링아무의 코딩일기 힐코딩!
'Python > Streamlit' 카테고리의 다른 글
Data Dashboard App(데이터 대시보드 앱)을 개발하는 순서 (0) | 2022.05.20 |
---|---|
스트림릿(streamlit)의 다양한 UI 함수들 정리 2 - 멀티셀렉트/슬라이더, 익스펜더 만들기/이미지,동영상,오디오파일 출력/유저한테 입력받기 (0) | 2022.05.20 |
비주얼 스튜디오 코드의 터미널을 이용해서 스트림릿 실행하는 방법 (0) | 2022.05.19 |
Streamlit(스트림릿) 설치 방법 (0) | 2022.05.19 |
소스코드 버전 관리를 위한, Git과 Github.com 사용법 (0) | 2022.05.19 |
댓글