programming/Python

[파이썬] streamlit의 metric활용하기(전일대비 등락폭 등 시각화)

Jofresh 2023. 12. 27. 15:12
728x90
반응형

이 코드는 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 문서 참조

 

Streamlit Docs

Join the community Streamlit is more than just a way to make data apps, it's also a community of creators that share their apps and ideas and help each other make their work better. Please come join us on the community forum. We love to hear your questions

docs.streamlit.io

 

728x90
반응형