Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -82,31 +82,14 @@ def obter_disciplinas_validas(df):
|
|
82 |
if pd.isna(disciplina) or disciplina == '':
|
83 |
continue
|
84 |
|
85 |
-
notas =
|
86 |
-
freq =
|
87 |
|
88 |
if (notas > 0).any() or (freq > 0).any():
|
89 |
disciplinas_validas.append(disciplina)
|
90 |
|
91 |
return disciplinas_validas
|
92 |
|
93 |
-
def gerar_paleta_cores(n_cores):
|
94 |
-
"""Gera uma paleta de cores distintas para o número de disciplinas."""
|
95 |
-
cores_base = [
|
96 |
-
'#DC143C', '#4169E1', '#9370DB', '#32CD32', '#FF8C00',
|
97 |
-
'#00CED1', '#FF69B4', '#8B4513', '#4B0082', '#556B2F',
|
98 |
-
'#B8860B', '#483D8B', '#008B8B', '#8B008B', '#8B0000'
|
99 |
-
]
|
100 |
-
|
101 |
-
# Se precisar de mais cores, gerar automaticamente
|
102 |
-
if n_cores > len(cores_base):
|
103 |
-
HSV_tuples = [(x/n_cores, 0.8, 0.9) for x in range(n_cores)]
|
104 |
-
cores_extras = ['#%02x%02x%02x' % tuple(int(x*255) for x in colorsys.hsv_to_rgb(*hsv))
|
105 |
-
for hsv in HSV_tuples]
|
106 |
-
return cores_extras
|
107 |
-
|
108 |
-
return cores_base[:n_cores]
|
109 |
-
|
110 |
def plotar_evolucao_bimestres(df_filtrado, temp_dir):
|
111 |
"""Plota gráfico de evolução das notas por bimestre."""
|
112 |
# Obter disciplinas válidas
|
@@ -133,11 +116,13 @@ def plotar_evolucao_bimestres(df_filtrado, temp_dir):
|
|
133 |
dados_disciplina = df_filtrado[df_filtrado['Disciplina'] == disciplina]
|
134 |
if not dados_disciplina.empty:
|
135 |
notas = dados_disciplina[colunas_notas].values[0]
|
136 |
-
|
|
|
|
|
137 |
|
138 |
if any(notas_validas):
|
139 |
bimestres = np.arange(1, len(colunas_notas) + 1)[notas_validas]
|
140 |
-
notas_filtradas = pd.to_numeric(
|
141 |
|
142 |
plt.plot(bimestres, notas_filtradas,
|
143 |
color=cores[idx % len(cores)],
|
@@ -154,6 +139,7 @@ def plotar_evolucao_bimestres(df_filtrado, temp_dir):
|
|
154 |
xytext=(0, 5),
|
155 |
ha='center',
|
156 |
fontsize=8)
|
|
|
157 |
|
158 |
plt.title('Evolução das Médias por Disciplina ao Longo dos Bimestres')
|
159 |
plt.xlabel('Bimestres')
|
|
|
82 |
if pd.isna(disciplina) or disciplina == '':
|
83 |
continue
|
84 |
|
85 |
+
notas = row[colunas_notas].astype(float)
|
86 |
+
freq = row[colunas_freq].astype(float)
|
87 |
|
88 |
if (notas > 0).any() or (freq > 0).any():
|
89 |
disciplinas_validas.append(disciplina)
|
90 |
|
91 |
return disciplinas_validas
|
92 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
def plotar_evolucao_bimestres(df_filtrado, temp_dir):
|
94 |
"""Plota gráfico de evolução das notas por bimestre."""
|
95 |
# Obter disciplinas válidas
|
|
|
116 |
dados_disciplina = df_filtrado[df_filtrado['Disciplina'] == disciplina]
|
117 |
if not dados_disciplina.empty:
|
118 |
notas = dados_disciplina[colunas_notas].values[0]
|
119 |
+
# Converter para Series do pandas
|
120 |
+
notas_series = pd.Series(notas)
|
121 |
+
notas_validas = pd.to_numeric(notas_series, errors='coerce').replace([np.nan, 0], 0) > 0
|
122 |
|
123 |
if any(notas_validas):
|
124 |
bimestres = np.arange(1, len(colunas_notas) + 1)[notas_validas]
|
125 |
+
notas_filtradas = pd.to_numeric(notas_series[notas_validas], errors='coerce').fillna(0)
|
126 |
|
127 |
plt.plot(bimestres, notas_filtradas,
|
128 |
color=cores[idx % len(cores)],
|
|
|
139 |
xytext=(0, 5),
|
140 |
ha='center',
|
141 |
fontsize=8)
|
142 |
+
|
143 |
|
144 |
plt.title('Evolução das Médias por Disciplina ao Longo dos Bimestres')
|
145 |
plt.xlabel('Bimestres')
|