Streamlit11 [Streamlit] Session state란? Session state란? session state 는 streamlit 애플리케이션 내에서 상태를 유지하고 다루는데 사용되는 변수 왜 필요할까? 일반적으로 Streamlit은 상태를 유지하지 않음 사용자가 애플리케이션과 상호작용할 때마다 각 요청은 새로운 상태를 생성함 이러한 방식은 일반적으로 웹 애플리케이션에서 세션이 유지되지 않는 상태로 동작함 각 요청 간 이전 상태가 유지되지 않기 때문 session state를 사용하면, 특정한 요청들 간에도 상태를 유지할 수 있음 👉 이를 통해, streamlit 어플리케이션을 사용자 친화적으로 만들 수 있음 👉 데이터 처리하는 동안 임시로 상태를 유지하는 데 유용함 streamlit에서 session state 사용법 👉 sessionState 라는 커스텀.. 2023. 8. 1. Streamlit 이란? Streamlit 이란? 데이터 과학자와 개발자가 Python 스크립트로 인터랙티브한 웹 애플리케이션을 간단하게 구축할 수 있도록 도와주는 오픈 소스 Python 라이브러리 데이터 시각화, 머신 러닝 모델 시연, 웹 기반 대시보드 등을 빠르게 개발하고 쉽게 공유할 수 있음 Streamlit 장점 데이터 시각화와 상호 작용을 위해 Matplotlib, Plotly, Altair 등의 라이브러리를 통합함 머신 러닝 모델을 포함한 다양한 Python 라이브러리와의 통합이 가능함 실시간으로 코드를 수정하고 적용할 수 있음 간단한 명령어로 데이터를 시각화하거나 다양한 형태의 입력 요소를 추가 가능 https://streamlit.io/gallery?category=data-visualization App Gall.. 2023. 7. 31. Streamlit 기본 문법(9) : 사이드바 & selectbox, tab 활용 ☘ 사이드바 활용 코드 예시 import matplotlib.pyplot as plt import streamlit as st import seaborn as sns def main(): st.title("확인") with st.sidebar: st.header("Sidebar") day = st.selectbox("요일 선택", ["Thur", "Fri", "Sat", "Sun"]) tips = sns.load_dataset("tips") filtered_tips = tips.loc[tips['day'] == day] #st.dataframe(filtered_tips) top_bill = filtered_tips['total_bill'].max() top_tip = filtered_tips['tip'].. 2023. 7. 28. Streamlit 기본 문법(8) : 주식 데이터 조회 페이지 만들기(feat. 사이드바) 주식 데이터 조회 페이지 만들기 (with 사이드바) 1. 필요한 라이브러리 다운 import plotly.graph_objects as go import pandas as pd import streamlit as st import yfinance as yf import matplotlib.pyplot as plt 2. 사이드바에 주식 종목(티커)를 입력 / 시작 ~ 종료 날짜 생성 / 데이터 조회하는 코드 def main(): st.title("주식 데이터") st.sidebar.title("Stock Chart") ticker = st.sidebar.text_input("Enter a ticker (e. g. AAPL)", value = "AAPL") st.sidebar.markdown('Ticker.. 2023. 7. 28. Streamlit 기본 문법(7) : MultiSelect(멀티셀렉트) 위젯 MultiSelect 사용하기 여러 개의 항목으로 multiSelect 위젯을 생성하는 코드 iris 데이터프레임에서 iris 의 유일값들을 선택, 멀티셀렉트 항목으로 지정 iris = sns.load_dataset('iris') cols = st.multiselect("복수의 컬럼 선택", iris.columns) #st.write(cols) filtered_iris = iris.loc[:, cols] st.dataframe(filtered_iris) 👉 결과 : 여러개의 항목을 선택할 수 있으며, 선택한 항목에 해당하는 데이터프레임 출력 2023. 7. 28. Streamlit 기본 문법(6) : selectbox(셀렉트박스) 위젯 Select Box 사용하기 Selectbox의 요소(주제)에 따라 시각화 그래프를 보여주는 코드 iris = sns.load_dataset('iris') #select box 만들기 st.markdown("## Raw Data") st.dataframe(iris) st.markdown("", unsafe_allow_html=True) #html 코드 쓰고 싶을 때 st.markdown("### SelectBox") st.write(iris['species'].unique()) col_name = st.selectbox('1개의 종을 선택하세요!', iris['species'].unique()) st.write(col_name) #iris 종별로 result 값 나누기 result = iris.loc[i.. 2023. 7. 28. Streamlit 기본 문법(5) : radio(라디오) 위젯 라디오 위젯 사용하기 3개의 라디오 버튼을 만들고, 서로 다른 유형의 그래프를 보여주는 코드 def plot_matplotlib(): st.title('산점도 Matplotlib') fig, ax = plt.subplots() ax.scatter(iris['sepal_length'], iris['sepal_width']) st.pyplot(fig) def plot_seaborn(): st.title('산점도 Seaborn') fig, ax = plt.subplots() sns.scatterplot(iris, x = 'sepal_length', y ='sepal_width') st.pyplot(fig) def plot_plotly(): st.title('Scatter Plot with Plotly') fi.. 2023. 7. 28. Streamlit 기본 문법(4) : checkbox(체크박스) 위젯 체크박스 위젯 사용하기 체크박스를 클릭하면 시각화 그래프가 나타나는 코드 import streamlit as st import matplotlib.pyplot as plt import numpy as np # 체크박스 만들기 x = np.linspace(0, 10, 100) y = np.sin(x) show_plot = st.checkbox("시각화 보여주기") st.write(show_plot) fig, ax = plt.subplots() ax.plot(x, y) if show_plot: st.pyplot(fig) if __name__ == "__main__": main() 👉 결과 checkbox에 체크된 값이 ture 로 나타남 True/False 로 구분 2023. 7. 28. Streamlit 기본 문법(3) : slider, button 위젯 활용하기 1. 위젯 사용해서 매출 계산하기 1 - 1. 위젯 함수 정의 1. 매출액 계산하는 함수 정의 2. 슬라이더 위젯 활용 : price 슬라이더와 total_sales 슬라이더 만들기 3. 버튼 위젯 활용 : result 에 매출액 계산 함수 지정하여 출력 1 - 2. 결과 2023. 7. 28. 이전 1 2 다음 728x90