AIdeaText commited on
Commit
f2cefa7
·
verified ·
1 Parent(s): e3aeb2b

Update modules/studentact/current_situation_interface.py

Browse files
modules/studentact/current_situation_interface.py CHANGED
@@ -166,6 +166,7 @@ def display_metrics_and_chart(metrics):
166
  st.error("Error al mostrar los resultados")
167
 
168
  ########################################
 
169
  def display_radar_chart(metrics):
170
  """
171
  Muestra solo el gráfico de radar.
@@ -181,47 +182,47 @@ def display_radar_chart(metrics):
181
  ]
182
  values_pattern = [1.0, 1.0, 1.0, 1.0]
183
 
184
- # Crear figura más compacta
185
- fig = plt.figure(figsize=(6, 6))
186
- ax = fig.add_subplot(111, projection='polar')
187
 
188
- # Número de variables
189
- num_vars = len(categories)
190
 
191
- # Calcular ángulos
192
- angles = [n / float(num_vars) * 2 * np.pi for n in range(num_vars)]
193
- angles += angles[:1]
194
 
195
- # Extender valores para cerrar polígonos
196
- values_user += values_user[:1]
197
- values_pattern += values_pattern[:1]
198
 
199
- # Configurar ejes y etiquetas
200
- ax.set_xticks(angles[:-1])
201
- ax.set_xticklabels(categories, fontsize=8)
202
 
203
- # Círculos concéntricos y etiquetas
204
- circle_ticks = np.arange(0, 1.1, 0.2) # Reducido a 5 niveles
205
- ax.set_yticks(circle_ticks)
206
- ax.set_yticklabels([f'{tick:.1f}' for tick in circle_ticks], fontsize=8)
207
- ax.set_ylim(0, 1)
208
 
209
- # Dibujar patrón ideal
210
- ax.plot(angles, values_pattern, 'g--', linewidth=1, label='Patrón', alpha=0.5)
211
- ax.fill(angles, values_pattern, 'g', alpha=0.1)
212
 
213
- # Dibujar valores del usuario
214
- ax.plot(angles, values_user, 'b-', linewidth=2, label='Tu escritura')
215
- ax.fill(angles, values_user, 'b', alpha=0.2)
216
 
217
- # Leyenda
218
- ax.legend(loc='upper right', bbox_to_anchor=(0.1, 0.1), fontsize=8)
219
 
220
- # Ajustes finales
221
- plt.tight_layout()
222
- st.pyplot(fig)
223
- plt.close()
224
 
225
  except Exception as e:
226
  logger.error(f"Error generando gráfico de radar: {str(e)}")
227
- st.error("Error al generar la visualización")
 
166
  st.error("Error al mostrar los resultados")
167
 
168
  ########################################
169
+
170
  def display_radar_chart(metrics):
171
  """
172
  Muestra solo el gráfico de radar.
 
182
  ]
183
  values_pattern = [1.0, 1.0, 1.0, 1.0]
184
 
185
+ # Crear figura más compacta
186
+ fig = plt.figure(figsize=(6, 6))
187
+ ax = fig.add_subplot(111, projection='polar')
188
 
189
+ # Número de variables
190
+ num_vars = len(categories)
191
 
192
+ # Calcular ángulos
193
+ angles = [n / float(num_vars) * 2 * np.pi for n in range(num_vars)]
194
+ angles += angles[:1]
195
 
196
+ # Extender valores para cerrar polígonos
197
+ values_user += values_user[:1]
198
+ values_pattern += values_pattern[:1]
199
 
200
+ # Configurar ejes y etiquetas
201
+ ax.set_xticks(angles[:-1])
202
+ ax.set_xticklabels(categories, fontsize=8)
203
 
204
+ # Círculos concéntricos y etiquetas
205
+ circle_ticks = np.arange(0, 1.1, 0.2) # Reducido a 5 niveles
206
+ ax.set_yticks(circle_ticks)
207
+ ax.set_yticklabels([f'{tick:.1f}' for tick in circle_ticks], fontsize=8)
208
+ ax.set_ylim(0, 1)
209
 
210
+ # Dibujar patrón ideal
211
+ ax.plot(angles, values_pattern, 'g--', linewidth=1, label='Patrón', alpha=0.5)
212
+ ax.fill(angles, values_pattern, 'g', alpha=0.1)
213
 
214
+ # Dibujar valores del usuario
215
+ ax.plot(angles, values_user, 'b-', linewidth=2, label='Tu escritura')
216
+ ax.fill(angles, values_user, 'b', alpha=0.2)
217
 
218
+ # Leyenda
219
+ ax.legend(loc='upper right', bbox_to_anchor=(0.1, 0.1), fontsize=8)
220
 
221
+ # Ajustes finales
222
+ plt.tight_layout()
223
+ st.pyplot(fig)
224
+ plt.close()
225
 
226
  except Exception as e:
227
  logger.error(f"Error generando gráfico de radar: {str(e)}")
228
+ st.error("Error al generar la visualización")