-
Notifications
You must be signed in to change notification settings - Fork 0
/
dashboard.py
32 lines (29 loc) · 1.37 KB
/
dashboard.py
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
32
import streamlit as st
import pandas as pd
import plotly.express as px
online = pd.read_csv('./resultados/online.csv')
offline = pd.read_csv('./resultados/offline.csv')
plano = pd.read_csv('./resultados/plano.csv')
status = pd.read_csv('./resultados/status.csv')
st.sidebar.title('Dashboard: Desafio MW Soluções')
opcao = st.sidebar.selectbox('Filtrar:', ('Clientes por cidade', 'Clientes por plano', 'Clientes por status'))
match opcao:
case "Clientes por cidade":
st.subheader('Clientes online por cidade:')
st.dataframe(online, use_container_width=True)
fig_online = px.bar(online, x='Cidade', y='Clientes')
st.plotly_chart(fig_online)
st.subheader('Clientes offline por cidade:')
st.dataframe(offline, use_container_width=True)
fig_offline = px.bar(offline, x='Cidade', y='Clientes')
st.plotly_chart(fig_offline)
case "Clientes por plano":
st.subheader('Clientes por plano:')
st.dataframe(plano, use_container_width=True)
fig_plano = px.bar(plano, x='Plano', y='Clientes')
st.plotly_chart(fig_plano)
case "Clientes por status":
st.subheader('Clientes por status:')
st.dataframe(status, use_container_width=True)
fig_status = px.pie(status, names='Status', values='Clientes', title='Distribuição de Clientes por Status')
st.plotly_chart(fig_status)