Streamlit

[Streamlit] 반응형 차트 만들기

eyoo 2022. 5. 20. 12:17
스트림릿에서 제공해주는 line_chart와 area_chart를 사용해서 언어의 사용 빈도수를 표현해보자

 

in:

    lang_list = df1.columns[1:]
    choice_list = st.multiselect('언어를 선택하세요',lang_list)
    if len(choice_list)!=0:
        df_choice = df1[choice_list]
        st.line_chart(df_choice)
        st.area_chart(df_choice)

out:

# 먼저 데이터프레임의 컬럼명들을 리스트로 만들었다.

# 그후, 멀티셀렉트를 사용해서 변수로 만들었다.

 
 
스트림릿이 제공하는 bar_chart도 있다.
 
in:
    st.bar_chart(df2.iloc[:,0:-1])
 
out:

 

 

 
웹에서 사용할수있는 차트 라이브러리 중 Altair 차트를 사용하여 나타낸다.
 
 
in:
import altair as alt

    alt_chart = alt.Chart(df2).mark_circle().encode(
        x = 'petal_length',
        y = 'petal_width',
        color = 'species')

    st.altair_chart(alt_chart)
out:

# altair차트의 경우 st.altair_chart를 사용하여 나타낼수 있다.
 
 
데이터프레임에 위도 경도가 있으면 map을 통해서 지도를 그릴수있다.
 
in:
    st.map(df3)
out:
 
 
plotly 라이브러리를 이용하여 차트를 나타낼수있다.
# plotly가 설치 되지 않았을때는 프롬프트에 conda install -c plotly plotly=5.8.0  입력
 
plotly로 pie 차트를 그려보자
 
in:
    fig1 = px.pie(df4,names='lang',values='Sum', title='각 언어별 파이차트')
    st.plotly_chart(fig1)
 
out:

# plotly는 st.plotly_chart를 사용하여 나타낸다.

 

 
plotly의 bar 차트를 나타내자
 
in:
    df4_sorted = df4.sort_values('Sum',ascending=False)
    fig2 = px.bar(df4_sorted,x='lang',y='Sum')
    st.plotly_chart(fig2)​

out: