Update modules/studentact/current_situation_interface.py
Browse files
modules/studentact/current_situation_interface.py
CHANGED
@@ -210,6 +210,8 @@ def display_current_situation_interface(lang_code, nlp_models, t):
|
|
210 |
logger.error(f"Error en interfaz principal: {str(e)}")
|
211 |
st.error(current_situation_t.get('error_interface', "Ocurrió un error al cargar la interfaz"))
|
212 |
|
|
|
|
|
213 |
def display_diagnosis(metrics, text_type=None, lang_code='es', t=None):
|
214 |
"""
|
215 |
Muestra los resultados del análisis: métricas verticalmente y gráfico radar.
|
@@ -287,7 +289,7 @@ def display_diagnosis(metrics, text_type=None, lang_code='es', t=None):
|
|
287 |
|
288 |
# Gráfico radar en la columna derecha
|
289 |
with graph_col:
|
290 |
-
display_radar_chart(metrics_config, thresholds)
|
291 |
|
292 |
except Exception as e:
|
293 |
logger.error(f"Error mostrando resultados: {str(e)}")
|
@@ -295,19 +297,21 @@ def display_diagnosis(metrics, text_type=None, lang_code='es', t=None):
|
|
295 |
|
296 |
##################################################################
|
297 |
##################################################################
|
298 |
-
def display_radar_chart(metrics_config, thresholds):
|
299 |
-
legend_translations = {
|
300 |
-
'es': {'min': 'Mínimo', 'target': 'Meta', 'user': 'Tu escritura'},
|
301 |
-
'en': {'min': 'Minimum', 'target': 'Target', 'user': 'Your writing'},
|
302 |
-
'uk': {'min': 'Мінімум', 'target': 'Ціль', 'user': 'Ваш текст'}
|
303 |
-
}
|
304 |
-
translations = legend_translations.get(lang_code, legend_translations['es'])
|
305 |
-
|
306 |
"""
|
307 |
Muestra el gráfico radar con los resultados.
|
308 |
"""
|
309 |
-
|
310 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
# Preparar datos para el gráfico
|
312 |
categories = [m['label'] for m in metrics_config]
|
313 |
values_user = [m['value'] for m in metrics_config]
|
@@ -333,14 +337,14 @@ def display_radar_chart(metrics_config, thresholds):
|
|
333 |
ax.set_yticklabels([f'{tick:.1f}' for tick in circle_ticks], fontsize=8)
|
334 |
ax.set_ylim(0, 1)
|
335 |
|
336 |
-
# Dibujar áreas de umbrales
|
337 |
-
ax.plot(angles, min_values, '#e74c3c', linestyle='--', linewidth=1, label='
|
338 |
-
ax.plot(angles, target_values, '#2ecc71', linestyle='--', linewidth=1, label='
|
339 |
ax.fill_between(angles, target_values, [1]*len(angles), color='#2ecc71', alpha=0.1)
|
340 |
ax.fill_between(angles, [0]*len(angles), min_values, color='#e74c3c', alpha=0.1)
|
341 |
|
342 |
-
# Dibujar valores del usuario
|
343 |
-
ax.plot(angles, values_user, '#3498db', linewidth=2, label='
|
344 |
ax.fill(angles, values_user, '#3498db', alpha=0.2)
|
345 |
|
346 |
# Ajustar leyenda
|
|
|
210 |
logger.error(f"Error en interfaz principal: {str(e)}")
|
211 |
st.error(current_situation_t.get('error_interface', "Ocurrió un error al cargar la interfaz"))
|
212 |
|
213 |
+
#################################################################
|
214 |
+
#################################################################
|
215 |
def display_diagnosis(metrics, text_type=None, lang_code='es', t=None):
|
216 |
"""
|
217 |
Muestra los resultados del análisis: métricas verticalmente y gráfico radar.
|
|
|
289 |
|
290 |
# Gráfico radar en la columna derecha
|
291 |
with graph_col:
|
292 |
+
display_radar_chart(metrics_config, thresholds, lang_code) # Pasar el parámetro lang_code
|
293 |
|
294 |
except Exception as e:
|
295 |
logger.error(f"Error mostrando resultados: {str(e)}")
|
|
|
297 |
|
298 |
##################################################################
|
299 |
##################################################################
|
300 |
+
def display_radar_chart(metrics_config, thresholds, lang_code='es'):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
301 |
"""
|
302 |
Muestra el gráfico radar con los resultados.
|
303 |
"""
|
|
|
304 |
try:
|
305 |
+
# Traducción de las etiquetas de leyenda según el idioma
|
306 |
+
legend_translations = {
|
307 |
+
'es': {'min': 'Mínimo', 'target': 'Meta', 'user': 'Tu escritura'},
|
308 |
+
'en': {'min': 'Minimum', 'target': 'Target', 'user': 'Your writing'},
|
309 |
+
'uk': {'min': 'Мінімум', 'target': 'Ціль', 'user': 'Ваш текст'}
|
310 |
+
}
|
311 |
+
|
312 |
+
# Usar español por defecto si el idioma no está soportado
|
313 |
+
translations = legend_translations.get(lang_code, legend_translations['es'])
|
314 |
+
|
315 |
# Preparar datos para el gráfico
|
316 |
categories = [m['label'] for m in metrics_config]
|
317 |
values_user = [m['value'] for m in metrics_config]
|
|
|
337 |
ax.set_yticklabels([f'{tick:.1f}' for tick in circle_ticks], fontsize=8)
|
338 |
ax.set_ylim(0, 1)
|
339 |
|
340 |
+
# Dibujar áreas de umbrales con etiquetas traducidas
|
341 |
+
ax.plot(angles, min_values, '#e74c3c', linestyle='--', linewidth=1, label=translations['min'], alpha=0.5)
|
342 |
+
ax.plot(angles, target_values, '#2ecc71', linestyle='--', linewidth=1, label=translations['target'], alpha=0.5)
|
343 |
ax.fill_between(angles, target_values, [1]*len(angles), color='#2ecc71', alpha=0.1)
|
344 |
ax.fill_between(angles, [0]*len(angles), min_values, color='#e74c3c', alpha=0.1)
|
345 |
|
346 |
+
# Dibujar valores del usuario con etiqueta traducida
|
347 |
+
ax.plot(angles, values_user, '#3498db', linewidth=2, label=translations['user'])
|
348 |
ax.fill(angles, values_user, '#3498db', alpha=0.2)
|
349 |
|
350 |
# Ajustar leyenda
|