* 참조 링크
Input widgets - Streamlit Docs
* 라이브러리 불러오기
# -*- coding:utf-8 -*-
import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.graph_objects as go
1. st.slider
* 형식 : st.slider('라벨', 최소값, 최대값, 초기값, 스텝)
> 라벨 : 슬라이더 옆에 표시될 설명
> 스텝 : 슬라이더 값이 변경되는 간격, 생략 가능, 기본값 1
@st.cache_data
def cal_sales_revenue(price, total_sales):
revenue = price * total_sales
return revenue
def main():
st.title("Button Widget")
price = st.slider("단가:", 100, 10000, value = 5000)
total_sales = st.slider("전체 판매 갯수:", 1, 1000, value = 500)
st.write(price, total_sales)
if st.button("매출액 계산"):
revenue = cal_sales_revenue(price, total_sales)
st.write(revenue)
>> 버튼을 누르면 슬라이더를 통해 선택된 price와 total_sales를 곱해 매출액을 계산하도록 함(cal_sales_revenue)
2. st.checkbox
st.title("Check Box Control")
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)
else:
st.write("안녕, ")
>> 체크박스 클릭이 되면 시각화를 보여주고, 클릭이 되지 않으면 "안녕,"이라는 텍스트가 보이게 함
3. st.radio
# 데이터 불러오기
@st.cache_data
def load_data():
df = sns.load_dataset('iris')
return df
def plot_matplotlib(df):
st.title('Scatter Plot with Matplotlib')
fig, ax = plt.subplots()
ax.scatter(df['sepal_length'], df['sepal_width'])
st.pyplot(fig)
def plot_seaborn(df):
st.title('Scatter Plot with Seaborn')
fig, ax = plt.subplots()
sns.scatterplot(df, x = 'sepal_length', y = 'sepal_width')
st.pyplot(fig)
def plot_plotly(df):
st.title('Scatter Plot with Plotly')
fig = go.Figure()
fig.add_trace(
go.Scatter(x = df['sepal_length'],
y = df['sepal_width'],
mode='markers')
)
st.plotly_chart(fig)
plot_type = st.radio(
"어떤 스타일의 산점도를 보고 싶은가요?",
("Matplotlib","Seaborn","Plotly")
)
st.write(plot_type)
if plot_type == "Matplotlib":
plot_matplotlib(iris)
elif plot_type == "Seaborn":
plot_seaborn(iris)
elif plot_type == "Plotly":
plot_plotly(iris)
else:
st.write("Error!!")
st.title("SelectBox 사용")
>> st.radio로 Matplotlib, Seaborn, Plotly 중 하나를 선택할 수 있게 하고 그에 맞는 차트를 보여줌
4. st.selectbox
# 행 추출
st.write(iris.species.unique())
val = st.selectbox("1개의 종을 선택하세요!!", iris.species.unique())
st.write("선택된 species:", val)
result = iris.loc[iris['species'] == val, :].reset_index(drop=True)
st.data_editor(result)
>> 선택된 종에 해당하는 자료만 보여줌
5. st.multiselect
cols = st.multiselect("복수의 컬럼을 선택하세요!!", iris.columns)
st.dataframe(iris.loc[:, cols])
>> 두 개의 컬럼을 선택하면 그 자료만 보여줌
* st.data_editor
Data elements
데이터를 수정할 수 있음
st.title("라이브러리 선택")
iris = load_data()
st.data_editor(iris)
>> 위 코드는 특정 열을 선택하면 데이터가 그에 따라 정렬됨
if __name__ == "__main__":
main()
'Python' 카테고리의 다른 글
PyCaret Windows 10 아나콘다 설치 (0) | 2024.02.14 |
---|---|
환경 변수 설정으로 API 키 숨기기 (0) | 2024.02.01 |
캐글 튜토리얼 연습 (0) | 2024.01.16 |
통계검정별 사용함수 정리(+예시) (0) | 2024.01.12 |
가설검정 (2표본 문제에 관한 가설검정) (1) | 2024.01.11 |