DASHBOARD APP 개발/Streamlit Library

Streamlit 기본 lib : Web 화면에 차트그리기 2 (스트림릿의 내장 차트 함수와 유명한 라이브러리인 plotly 차트)

신강희 2024. 5. 7. 16:39
728x90

< 스트림릿의 내장 차트 함수와 유명한 라이브러리인 plotly 차트 >

# 기본적으로 모든 코드들은

def main() :
if __name__ == '__main__' :
    main()

ㄴ 이 기본형식 안에서 쓰여저야 실행된다. 혹시 실행이 되지 않을경우 하단에 마무리 코드를 적지 않았는지 확인!

 

# 웹 화면에 실행 확인은 생성한 파일명이나 혹은 연동한 app을 서버로 실행하여야 함.

# 터미널을 cmd로 열어 & streamli lit run 실행시킬서버명칭.py 로 실행후 always rerun 후 확인

 

< app10.py로 작성 >

# 스트림릿의 내장 차트 함수와 유명한 라이브러리인 plotly 차트

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt

import plotly.express as px

 

# 데이터 불러오기

def main() :
    # 스트림릿에서 제공해 주는 차트
    # line_chart, area_chart

    df1 = pd.read_csv('./data/lang_data.csv')
column_list = df1.columns[ 1 : ]

    choice_list = st.multiselect('언어를 선택하세요.', column_list)

    #print(choice_list)

    if len(choice_list ) != 0 :
        df_choice = df1[choice_list]
       
        st.dataframe(df_choice)

        # plt로 차트 그릴때
        # 차트 영역을 변수로 지정해서 그 영역안에 그린 차트를 보여달라고까지 코딩해야 한다.
        fig = plt.figure()
        plt.plot(df_choice)
        st.pyplot(fig)

        # 스트림릿 제공으로 차트 그릴때 함수 한줄이면 출력
        st.line_chart(df_choice)

        st.area_chart(df_choice)

 

# 새로운 데이터 가져와서 그리기

df2 = pd.read_csv('./data/iris.csv')
 # 스트림릿이 제공하는 bar_chart
    #print(df2.iloc[: , 0 : -2+1 ])

    df_iris = df2.iloc[: , 0 : -2+1 ]
   
    st.bar_chart( df_iris )

 

# 지도 그리기

df3 = pd.read_csv('./data/location.csv', index_col=0)
    print(df3)

    st.map(df3)

 

# plotly 차트

df4 = pd.read_csv('./data/prog_languages_data.csv', index_col=0)
 
# plotly 의 pie 차트 (pie 차트는 비율을 알고싶을때 유용하다.)
    fig1 = px.pie(data_frame=df4, names='lang', values='Sum', title='각 언어별 파이차트')
    st.plotly_chart(fig1)
   
    # plotly 의 bar 차트

    print(df4.sort_values('Sum'))
   
    df_sorted = df4.sort_values('Sum', ascending=False)

    fig2 = px.bar(data_frame= df_sorted, x='lang', y='Sum')
    st.plotly_chart(fig2)

 

### app10.py 전체 코드 ###

# 스트림릿의 내장 차트 함수와 유명한 라이브러리인 plotly 차트

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt

import plotly.express as px

def main() :
    # 스트림릿에서 제공해 주는 차트
    # line_chart, area_chart

    df1 = pd.read_csv('./data/lang_data.csv')
    #print(df1)

    #print(df1.columns[ 1 : ] )

    column_list = df1.columns[ 1 : ]

    choice_list = st.multiselect('언어를 선택하세요.', column_list)

    #print(choice_list)

    if len(choice_list ) != 0 :
        df_choice = df1[choice_list]
       
        st.dataframe(df_choice)

        # plt로 차트 그릴때
        # 차트 영역을 변수로 지정해서 그 영역안에 그린 차트를 보여달라고까지 코딩해야 한다.
        fig = plt.figure()
        plt.plot(df_choice)
        st.pyplot(fig)

        # 스트림릿 제공으로 차트 그릴때 함수 한줄이면 출력
        st.line_chart(df_choice)

        st.area_chart(df_choice)

    df2 = pd.read_csv('./data/iris.csv')

    # 스트림릿이 제공하는 bar_chart
    #print(df2.iloc[: , 0 : -2+1 ])

    df_iris = df2.iloc[: , 0 : -2+1 ]
   
    st.bar_chart( df_iris )

    df3 = pd.read_csv('./data/location.csv', index_col=0)
    print(df3)

    st.map(df3)

    df4 = pd.read_csv('./data/prog_languages_data.csv', index_col=0)
    print(df4)

    # plotly 의 pie 차트 (pie 차트는 비율을 알고싶을때 유용하다.)
    fig1 = px.pie(data_frame=df4, names='lang', values='Sum', title='각 언어별 파이차트')
    st.plotly_chart(fig1)
   
    # plotly 의 bar 차트

    print(df4.sort_values('Sum'))
   
    df_sorted = df4.sort_values('Sum', ascending=False)

    fig2 = px.bar(data_frame= df_sorted, x='lang', y='Sum')
    st.plotly_chart(fig2)


if __name__ == '__main__' :
    main()

 

다음 게시글로 계속

반응형