728x90
반응형
이번 글에서는 Streamlit의 기본적인 기능에 대해 알아보도록 하자.
각 명령어들의 자세한 옵션 및 설명은 Streamlit 홈페이지 (링크)에서 확인 가능하니 참고하도록 하자.
목차
- 강조 문구
- 제목 넣기
- 텍스트 넣기
- Header
- SubHeader
- Markdown
- 색상이 들어간 텍스트 Feature ( Progress, Status 메시지 )
- 텍스트 넣기 st.write( )
- 도움말 확인
- 위젯 만들기
- 버튼 만들기
- 체크 박스 만들기
- 라디오 버튼 만들기
- 선택 박스 만들기
- 다중 선택 박스 만들기
- 슬라이더 만들기
- 데이터 불러오기
- 데이터 출력
- 각종 콘텐츠 출력 (이미지, 비디오, 오디오)
- 차트 출력
- 사이드바, 레이아웃
# -*- coding:UTF-8 -*-
import streamlit as st
import pandas as pd
from utils import p_lans
from PIL import Image
1. 강조 문구
- 제목 넣기
- 텍스트 넣기
- Header
- SubHeader
- Markdown
- 색상이 들어간 텍스트 Feature ( Progress, Status 메시지 )
def main():
st.title("Hello World!")
if __name__ == '__main__':
main()
# text
st.text('This is so {}'.format("good"))
# Header
st.header('This is subHeader')
# Subheader
st.subheader('This is Markdown')
# Markdown
st.markdown('## This is Markdown')
# 색상이 들어간 텍스트 feature
st.success('성공')
st.warning('경고')
st.info('정보와 관련된 탭')
st.error('에러 메시지')
st.exception('예외 처리')
2. 텍스트 넣기 ( st.write( ) )
# st.write()
st.write('일반 텍스트')
st.write(1+2)
st.write(dir(str))
st.title(':sunglasses:')
3. 도움말
# Help
st.help(range)
4. 위젯 만들기
- 버튼 만들기
- 체크 박스 만들기
- 라디오 버튼 만들기
- 선택 박스 만들기
- 다중 선택 박스 만들기
- 슬라이더 만들기
# 위젯, button 기능 활용
name = "Choi"
if st.button('Submit'):
st.write(f'name: {name.upper}')
# RadioButton
s_state = st.radio('Status', ('활성화', '비활성화'))
if s_state == '활성화':
st.success('활성화 상태')
else:
st.error('비활성화 상태')
# Check Box
if st.checkbox('show/hide'):
st.text('무언가를 보여줘!!')
# Select Box
choice = st.selectbox('프로그래밍 언어', p_lans)
st.write(f'{choice} 언어를 선택함')
# multiple selection
lans = ("영어", "일본어", "중국어", "독일어")
myChoice = st.multiselect("언어선택", lans, default="중국어")
st.write("선택", myChoice)
# Slider
age = st.slider('나이', 1, 120)
st.write(age)
5. 데이터 불러오기
# 데이터 불러오기
iris = pd.read_csv('data/iris.csv')
6. 데이터 출력
st.title('IRIS 테이블')
st.dataframe(iris, 500, 400) # data, Height, Width
st.title('table()')
st.table(iris)
st.title('write()')
st.write(iris)
myCode = """
def hello():
print("hi")
"""
st.code(myCode, language="Python")
7. 각종 콘텐츠 출력 (이미지, 비디오, 오디오)
# 이미지 가져오기
img = Image.open('data/dad.jpg')
st.image(img)
url = 'https://static.ebs.co.kr/images/public/lectures/2014/06/19/10/bhpImg/44deb98d-1c50-4073-9bd7-2c2c28d65f9e.jpg'
st.image(url)
# 비디오 출력
with open('data/secret_of_success.mp4', 'rb') as rb:
video_file = rb.read()
st.video(video_file)
# 오디오 출력
with open('data/song.mp3','rb') as rb:
audio_file = rb.read()
st.audio(audio_file, format="audio/mp3")
8. 차트 출력
- 현재 Matplotlib, Altair, Deck.gl, Plot.ly, Bokeh, Graphviz 등을 사용해 시각화함
- 대부분 df를 넣으면 바로 시각화할 수 있음
- st.line_chart
- st.area_chart
- st.bar_chart
- st.pyplot
- st.altair_chart
- st.vega_lite_chart
- st.plotly_chart
- st.bokeh_chart
- st.pydeck_chart
- st.graphviz_chart
- st.map
9. 사이드바, 레이아웃
- column
if __name__ == "__main__":
main()
# 4:9로 분할하여 컬럼 생성
col1,col2 = st.columns([4,9])
# column 1 내용
with col1 :
st.title('Here is column1')
# column 2 에 담을 내용
with col2 :
st.title('Here is column2')
st.checkbox('This is checkbox1 in col2 ')
# with 구문 말고 다르게 사용 가능 ( = with col2:)
col1.subheader(' I am column1 Subheader !! ')
col2.checkbox('This is checkbox2 in col2 ')
- tab
if __name__ == "__main__":
main()
# 탭 생성 : 탭 이름 => Tab A, Tab B
tab1, tab2 = st.tabs(['Tab A', 'Tab B'])
# tab A 내용
with tab1:
st.write('hello')
# tab B 내용
with tab2:
st.write('hi')
- sidebar
add_selectbox = st.sidebar.selectbox("왼쪽 사이드바 Select Box", ("A", "B", "C"))
출처 및 참고사이트 :
https://zzsza.github.io/mlops/2021/02/07/python-streamlit-dashboard/
728x90
반응형
'Python > Streamlit' 카테고리의 다른 글
[Streamlit] 설치 및 시작하기 / GitHub로 배포하기 (0) | 2023.04.21 |
---|