histlearn commited on
Commit
6a5ddf1
·
verified ·
1 Parent(s): cc7768f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -27
app.py CHANGED
@@ -144,35 +144,36 @@ class ReportGenerator:
144
  }
145
 
146
  def generate_graphs(self) -> List[plt.Figure]:
147
- """Gera gráficos para o relatório."""
148
- graphs = []
149
 
150
- # Distribuição de notas
151
- plt.figure(figsize=(10, 6))
152
- # Corrigindo o processamento da string
153
- acertos_data = pd.Series(self.data['Média de Acertos']).str.rstrip('%').astype(float)
154
- sns.histplot(data=acertos_data, bins=10)
155
- plt.axvline(self.stats['media_acertos'], color='r', linestyle='--',
156
  label=f'Média ({self.stats["media_acertos"]:.1f}%)')
157
- plt.title('Distribuição das Notas')
158
- plt.xlabel('Percentual de Acertos')
159
- plt.ylabel('Número de Alunos')
160
- plt.legend()
161
- graphs.append(plt.gcf())
162
- plt.close()
163
-
164
- # Relação tempo x desempenho
165
- plt.figure(figsize=(10, 6))
166
- tempo_segundos = pd.to_timedelta(self.data['Total Tempo']).dt.total_seconds()
167
- acertos = pd.Series(self.data['Média de Acertos']).str.rstrip('%').astype(float)
168
- plt.scatter(tempo_segundos / 60, acertos)
169
- plt.title('Tempo x Desempenho')
170
- plt.xlabel('Tempo Total (minutos)')
171
- plt.ylabel('Percentual de Acertos')
172
- graphs.append(plt.gcf())
173
- plt.close()
174
-
175
- return graphs
 
176
  def generate_pdf(self, output_path: str, graphs: List[plt.Figure]) -> None:
177
  """Gera relatório em PDF."""
178
  class PDF(FPDF):
 
144
  }
145
 
146
  def generate_graphs(self) -> List[plt.Figure]:
147
+ """Gera gráficos para o relatório."""
148
+ graphs = []
149
 
150
+ # Distribuição de notas
151
+ plt.figure(figsize=(10, 6))
152
+ # Corrigindo o processamento da string
153
+ acertos_data = pd.Series(self.data['Média de Acertos']).str.rstrip('%').astype(float)
154
+ sns.histplot(data=acertos_data, bins=10)
155
+ plt.axvline(self.stats['media_acertos'], color='r', linestyle='--',
156
  label=f'Média ({self.stats["media_acertos"]:.1f}%)')
157
+ plt.title('Distribuição das Notas')
158
+ plt.xlabel('Percentual de Acertos')
159
+ plt.ylabel('Número de Alunos')
160
+ plt.legend()
161
+ graphs.append(plt.gcf())
162
+ plt.close()
163
+
164
+ # Relação tempo x desempenho
165
+ plt.figure(figsize=(10, 6))
166
+ tempo_segundos = pd.to_timedelta(self.data['Total Tempo']).dt.total_seconds()
167
+ acertos = pd.Series(self.data['Média de Acertos']).str.rstrip('%').astype(float)
168
+ plt.scatter(tempo_segundos / 60, acertos)
169
+ plt.title('Tempo x Desempenho')
170
+ plt.xlabel('Tempo Total (minutos)')
171
+ plt.ylabel('Percentual de Acertos')
172
+ graphs.append(plt.gcf())
173
+ plt.close()
174
+
175
+ return graphs
176
+
177
  def generate_pdf(self, output_path: str, graphs: List[plt.Figure]) -> None:
178
  """Gera relatório em PDF."""
179
  class PDF(FPDF):