Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Pandas
- 딥러닝
- Ga
- 서평
- 블로그
- Google Analytics
- 텐서플로
- tensorflow
- 파이썬
- 독후감
- 한빛미디어
- 서평단
- SQL
- MATLAB
- 월간결산
- Blog
- 리눅스
- python visualization
- MySQL
- Visualization
- 매틀랩
- 한빛미디어서평단
- Python
- matplotlib
- 파이썬 시각화
- 통계학
- 티스토리
- Tistory
- Linux
- 시각화
Archives
- Today
- Total
pbj0812의 코딩 일기
[PYTHON] streamlit 으로 대시보드 만들기 본문
0. 목표
- streamlit 으로 대시보드 만들기
1. 설치 및 데모 실행
1) library 설치
pip install streamlit
2) 데모 실행
streamlit hello
# 아래 에러 발생시 아래쪽 업그레이드 진행 필요
# AttributeError: module 'google.protobuf.descriptor' has no attribute '_internal_create_key'
# pip install --upgrade protobuf
- 결과
- 여러 가지 데모들
2. 내 파일로 만들어보기
- 파일 명 : second_app.py
- 그림 코드 설명 : 링크
1) library 호출
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import streamlit as st
import datetime
2) 데이터 생성
df = pd.DataFrame({
'A' : [np.random.randint(1, 10) for i in range(100)],
'B' : [np.random.randint(1, 10) for i in range(100)],
'C' : [np.random.randint(1, 10) for i in range(100)]})
df.index = pd.date_range('1/1/2000', periods=100, freq='M')
df['Total'] = df['A'] + df['B'] + df['C']
df['A2'] = df['A'] / df['Total'] * 100
df['B2'] = df['B'] / df['Total'] * 100
df['C2'] = df['C'] / df['Total'] * 100
3) 그림 그리기
fig, ax = plt.subplots()
fig.set_size_inches(15, 10)
ax.set_xlim(df.index[0], df.index[-1])
ax.set_ylim(0, 100)
color_map = ["#f0dc6c", "#9e9c90", "#5f7ba1"]
ax.stackplot(df.index,df['A2'], df['B2'], df['C2'], colors = color_map)
ax.set_title('Achievements', fontsize = 20)
ax.set_ylabel("Player's Population Percentage", fontsize = 15)
ax.set_xlabel("Time(year)", fontsize = 15)
ax.text(df.index[0], df['A2'][0] / 2 , 'A2', fontsize = 20)
ax.text(df.index[0], (df['A2'][0] + df['A2'][0] + df['B2'][0]) / 2, 'B2', fontsize = 20)
ax.text(df.index[0], (df['A2'][0] + df['B2'][0] + 100) / 2, 'C2', fontsize = 20)
4) streamlit 에 올릴 내용들 작성
- 대시보드 제목, 새로고침 시간, 그림을 순서대로 출력
st.title('streamlit 에서 pyplot 사용하기')
st.text('마지막 새로고침 시간 : ' + str(datetime.datetime.now()))
st.pyplot(fig)
5) 실행
streamlit run second_app.py
- 결과
3. 참고
- Streamlit vs. Dash vs. Shiny vs. Voila vs. Flask vs. Jupyter
'ComputerLanguage_Program > PYTHON' 카테고리의 다른 글
[PYTHON] matplotlib 의 barh 로 분수 표현하기 (0) | 2021.07.28 |
---|---|
[PYTHON] bar 그래프에 백분율 표시하기 (0) | 2021.07.22 |
[PYTHON] stackplot 으로 Age Of Empires 그래프 그리기 (0) | 2021.07.18 |
[PYTHON] pandas-bokeh 라이브러리 써보기 (0) | 2021.07.16 |
[PYTHON] relativedelta 를 활용한 date_add 구현 (0) | 2021.07.15 |
Comments