Ajustes no dashboard
Browse files- dashboard.py +21 -21
dashboard.py
CHANGED
|
@@ -89,6 +89,27 @@ if st.sidebar.button('Executar Simulação'):
|
|
| 89 |
if convocados_99 is not None:
|
| 90 |
col2.metric("Mínimo para 99% de chance", f"{int(convocados_99['num_convocados'])} convocados")
|
| 91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 92 |
|
| 93 |
# Gráfico Principal
|
| 94 |
st.subheader('Probabilidade de Confirmação vs. Número de Convocados')
|
|
@@ -119,27 +140,6 @@ if st.sidebar.button('Executar Simulação'):
|
|
| 119 |
st.pyplot(fig1)
|
| 120 |
|
| 121 |
|
| 122 |
-
# Gráfico de Distribuição Binomial
|
| 123 |
-
st.subheader('Análise da Distribuição de Alunos')
|
| 124 |
-
st.markdown("Selecione um número de convocados para visualizar a distribuição esperada de alunos que comparecerão.")
|
| 125 |
-
|
| 126 |
-
num_conv_dist = st.slider('Número de Convocados para Análise da Distribuição', min_value=min_inscritos_teste, max_value=max_inscritos_teste, value=int(convocados_min_req['num_convocados']) if convocados_min_req is not None else min_inscritos_teste)
|
| 127 |
-
|
| 128 |
-
confirmados_dist = np.random.binomial(n=num_conv_dist, p=prob_confirmacao, size=num_simulacoes)
|
| 129 |
-
comparecem_dist = np.random.binomial(n=confirmados_dist, p=prob_comparecimento, size=num_simulacoes)
|
| 130 |
-
|
| 131 |
-
valor_esperado = num_conv_dist * prob_confirmacao * prob_comparecimento
|
| 132 |
-
|
| 133 |
-
fig2, ax2 = plt.subplots(figsize=(14, 7))
|
| 134 |
-
sns.histplot(comparecem_dist, kde=True, stat="probability", discrete=True, ax=ax2)
|
| 135 |
-
ax2.axvline(valor_esperado, color='red', linestyle='--', linewidth=2, label=f'Valor Esperado: {valor_esperado:.2f}')
|
| 136 |
-
ax2.axvline(vagas_minimas_necessarias, color='purple', linestyle=':', linewidth=2, label=f'Mínimo Necessário: {vagas_minimas_necessarias}')
|
| 137 |
-
|
| 138 |
-
ax2.set_title(f'Distribuição Simulada de Comparecimento para {num_conv_dist} Convocados', fontsize=16)
|
| 139 |
-
ax2.set_xlabel(f'Número de Alunos que Comparecem', fontsize=12)
|
| 140 |
-
ax2.set_ylabel('Probabilidade (Frequência Relativa)', fontsize=12)
|
| 141 |
-
ax2.legend()
|
| 142 |
-
st.pyplot(fig2)
|
| 143 |
|
| 144 |
# Tabela de Resultados
|
| 145 |
st.subheader('Tabela de Resultados Detalhados')
|
|
|
|
| 89 |
if convocados_99 is not None:
|
| 90 |
col2.metric("Mínimo para 99% de chance", f"{int(convocados_99['num_convocados'])} convocados")
|
| 91 |
|
| 92 |
+
# Gráfico de Distribuição Binomial
|
| 93 |
+
st.subheader('Análise da Distribuição de Alunos')
|
| 94 |
+
st.markdown("Distribuição das probabilidades de sucesso para o número de convocados dentro do total de vagas disponíveis")
|
| 95 |
+
|
| 96 |
+
num_conv_dist = total_vagas
|
| 97 |
+
|
| 98 |
+
confirmados_dist = np.random.binomial(n=num_conv_dist, p=prob_confirmacao, size=num_simulacoes)
|
| 99 |
+
comparecem_dist = np.random.binomial(n=confirmados_dist, p=prob_comparecimento, size=num_simulacoes)
|
| 100 |
+
|
| 101 |
+
valor_esperado = num_conv_dist * prob_confirmacao * prob_comparecimento
|
| 102 |
+
|
| 103 |
+
fig2, ax2 = plt.subplots(figsize=(14, 7))
|
| 104 |
+
sns.histplot(comparecem_dist, kde=True, stat="probability", discrete=True, ax=ax2)
|
| 105 |
+
ax2.axvline(valor_esperado, color='red', linestyle='--', linewidth=2, label=f'Valor Esperado: {valor_esperado:.2f}')
|
| 106 |
+
ax2.axvline(vagas_minimas_necessarias, color='purple', linestyle=':', linewidth=2, label=f'Mínimo Necessário: {vagas_minimas_necessarias}')
|
| 107 |
+
|
| 108 |
+
ax2.set_title(f'Distribuição Simulada de Comparecimento para {num_conv_dist} Convocados', fontsize=16)
|
| 109 |
+
ax2.set_xlabel(f'Número de Alunos que Comparecem', fontsize=12)
|
| 110 |
+
ax2.set_ylabel('Probabilidade (Frequência Relativa)', fontsize=12)
|
| 111 |
+
ax2.legend()
|
| 112 |
+
st.pyplot(fig2)
|
| 113 |
|
| 114 |
# Gráfico Principal
|
| 115 |
st.subheader('Probabilidade de Confirmação vs. Número de Convocados')
|
|
|
|
| 140 |
st.pyplot(fig1)
|
| 141 |
|
| 142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 143 |
|
| 144 |
# Tabela de Resultados
|
| 145 |
st.subheader('Tabela de Resultados Detalhados')
|