import streamlit as st import pandas as pd import numpy as np import matplotlib.pyplot as plt from PIL import Image import io # 페이지 설정 st.set_page_config(page_title="Streamlit UI Components", page_icon=":sparkles:") # 제목 st.title("Streamlit UI Components 예시") # 부제목 st.header("입력 컴포넌트") # 텍스트 입력 text_input = st.text_input("텍스트를 입력하세요") # 숫자 입력 number_input = st.number_input("숫자를 입력하세요", min_value=0, max_value=100) # 텍스트 영역 text_area = st.text_area("여러 줄 텍스트를 입력하세요") # 날짜 입력 date_input = st.date_input("날짜를 선택하세요") # 시간 입력 time_input = st.time_input("시간을 선택하세요") # 파일 업로드 uploaded_file = st.file_uploader("파일을 업로드하세요", type=["png", "jpg", "jpeg", "txt", "csv"]) # 슬라이더 slider = st.slider("슬라이더를 조정하세요", 0, 100, 50) # 셀렉트박스 selectbox = st.selectbox("옵션을 선택하세요", ["옵션 1", "옵션 2", "옵션 3"]) # 멀티셀렉트 multiselect = st.multiselect("여러 옵션을 선택하세요", ["옵션 A", "옵션 B", "옵션 C"]) # 라디오 버튼 radio = st.radio("라디오 버튼에서 선택하세요", ["선택 1", "선택 2", "선택 3"]) # 체크박스 checkbox = st.checkbox("체크박스를 선택하세요") # 버튼 if st.button("클릭하세요"): st.success("버튼이 클릭되었습니다!") st.header("출력 컴포넌트") # 텍스트 출력 st.write("여기에 텍스트를 출력합니다.") # 데이터프레임 출력 df = pd.DataFrame({ 'column 1': [1, 2, 3, 4], 'column 2': [10, 20, 30, 40] }) st.dataframe(df) # 차트 chart_data = pd.DataFrame(np.random.randn(20, 3), columns=['a', 'b', 'c']) st.line_chart(chart_data) # 그림 출력 if uploaded_file is not None and uploaded_file.type.startswith("image/"): image = Image.open(uploaded_file) st.image(image, caption="Uploaded Image") # 비디오 출력 video_file = open('example.mp4', 'rb') video_bytes = video_file.read() st.video(video_bytes) # 코드 출력 code = '''def hello(): print("Hello, Streamlit!")''' st.code(code, language='python') # 맵 map_data = pd.DataFrame({ 'lat': np.random.randn(10) + 37.76, # 샌프란시스코 위도 주변 'lon': np.random.randn(10) - 122.4 # 샌프란시스코 경도 주변 }) st.map(map_data) # 진행바 import time progress_bar = st.progress(0) for i in range(100): time.sleep(0.1) progress_bar.progress(i + 1) st.header("차트 예시") # 막대 차트 fig, ax = plt.subplots() ax.bar(["A", "B", "C"], [10, 20, 15]) st.pyplot(fig) # 주의: 실제 코드 실행을 위해서는 'example.mp4' 비디오 파일이 필요합니다. 해당 파일이 없다면 비디오 관련 코드를 주석 처리하거나 파일을 준비해주세요.