이 코드는 Streamlit을 사용하여 "tips" 데이터셋에서 얻은 통계 정보를 테이블과 st.metric을 사용하여 시각화하는 간단한 데이터 디스플레이 예제입니다. 코드를 세부적으로 살펴보겠습니다.
라이브러리 임포트:
import streamlit as st
import pandas as pd
import seaborn as sns
필요한 라이브러리들을 임포트합니다. streamlit은 웹 애플리케이션을 만들기 위한 주요 라이브러리이고, pandas는 데이터프레임을 다루기 위한 라이브러리, seaborn은 시각화를 위한 라이브러리입니다.
데이터 캐싱을 위한 데코레이터 설정:
def load_data():
df = sns.load_dataset("tips")
return df
@st.cache_data 데코레이터는 데이터를 캐싱하여 동일한 데이터에 대한 요청이 있을 때 다시 계산하지 않고 저장된 값을 반환합니다. load_data 함수는 "tips" 데이터셋을 불러와서 반환합니다.
메인 함수 정의:
def main():
st.title("data display st.metric()")
st.subheader("describe")
tips = load_data()
st.table(tips.describe())
tip_max = tips['tip'].max() #최대값
tip_min = tips['tip'].min() #최소값
st.metric(label="Max Tip", value=tip_max, delta=tip_max - tip_min)
#value = 최대값 , delta= 최대값 - 최소값(최소값과의 차이를 보여줌)
st.metric(label="Min Tip", value=tip_min, delta=tip_min - tip_max)
st.title("data display st.metric()"): Streamlit 앱의 제목을 설정합니다.
st.subheader("describe"): 부제목을 설정합니다.
tips = load_data(): load_data 함수를 호출하여 "tips" 데이터셋을 불러옵니다.
st.table(tips.describe()): 데이터프레임의 통계 정보를 테이블로 출력합니다.
tip_max = tips['tip'].max(), tip_min = tips['tip'].min(): "tips" 데이터셋의 "tip" 열에서 최대값과 최소값을 계산합니다.
st.metric(label="Max Tip", value=tip_max, delta=tip_max - tip_min): st.metric을 사용하여 최대 팁에 대한 정보를 시각화합니다. label은 레이블, value는 값, delta는 추가 정보(최대값과 최소값의 차이)를 나타냅니다.
st.metric(label="Min Tip", value=tip_min, delta=tip_min - tip_max): 최소 팁에 대한 정보를 시각화합니다.
_main_ 블록:
if __name__ == "__main__":
main()
Python 스크립트가 직접 실행될 때만 main() 함수가 호출되도록 하는 블록입니다.
따라서, 이 코드는 "tips" 데이터셋의 통계 정보를 테이블로 출력하고, 최대 팁과 최소 팁에 대한 정보를 st.metric을 사용하여 시각화하는 간단한 Streamlit 애플리케이션을 만드는 예제입니다.
전체 코드
#markdown과 성격이 유사함
import streamlit as st
import pandas as pd
import seaborn as sns
@st.cache_data
def load_data():
df = sns.load_dataset("tips")
return df
def main():
st.title("data display st.metric()")
st.subheader("describe")
tips = load_data()
st.table(tips.describe())
tip_max = tips['tip'].max() #최대값
tip_min = tips['tip'].min() #최소값
st.metric(label="Max Tip", value=tip_max, delta=tip_max - tip_min)
#value = 최대값 , delta= 최대값 - 최소값(최소값과의 차이를 보여줌)
st.metric(label="Min Tip", value=tip_min, delta=tip_min - tip_max)
if __name__ == "__main__":
main()
실행 결과
이번 예제에서는 간단한 최대팁과 최소팁의 차이를 시각화했지만,
온도의 차이, 실적의 차이, 가격의 변동 등을 시각화 하기 좋은 툴입니다.
잘 활용해보세요!!
** API 문서 참조
'programming > Python' 카테고리의 다른 글
[파이썬] streamlit의 slider 이용해서 위젯 만들기 (0) | 2023.12.28 |
---|---|
[파이썬] streamlit의 plotly_chart로 그룹별로 차트 시각화하기 (0) | 2023.12.28 |
[파이썬] streamlit의 data_editor로 편집&분석도구 만들기 (0) | 2023.12.27 |
[파이썬] streamlit의 dataframe& session_state 알아보기 (0) | 2023.12.27 |
[파이썬] Streamlit을 이용한 간단한 웹 애플리케이션 개발 (0) | 2023.12.26 |