AIdeaText commited on
Commit
77fb91b
·
verified ·
1 Parent(s): ec72822

Update modules/ui.py

Browse files
Files changed (1) hide show
  1. modules/ui.py +41 -36
modules/ui.py CHANGED
@@ -170,38 +170,39 @@ def display_student_progress(username, lang_code='es'):
170
 
171
  st.title(f"Progreso de {username}")
172
 
173
- if student_data['word_count']:
174
- st.subheader("Total de palabras por categoria gramatical")
175
-
176
- df = pd.DataFrame(list(student_data['word_count'].items()), columns=['category', 'count'])
177
- df['label'] = df.apply(lambda x: f"{POS_TRANSLATIONS[lang_code].get(x['category'], x['category'])}\n({x['count']})", axis=1)
178
-
179
- fig, ax = plt.subplots(figsize=(8, 6), dpi=100) # Tamaño reducido
180
- colors = [POS_COLORS.get(cat, '#CCCCCC') for cat in df['category']]
181
-
182
- squarify.plot(sizes=df['count'], label=df['label'], color=colors, alpha=0.8, ax=ax)
183
-
184
- for text in ax.texts:
185
- text.set_visible(False)
186
-
187
- norm = plt.Normalize(df['count'].min(), df['count'].max())
188
- for rect, label in zip(ax.patches, df['label']):
189
- x = rect.get_x() + rect.get_width()/2
190
- y = rect.get_y() + rect.get_height()/2
191
- size = norm(rect.get_height() * rect.get_width())
192
- ax.text(x, y, label, ha='center', va='center', fontsize=6+size*8) # Tamaño de fuente reducido
193
-
194
- plt.title('Treemap del total de palabras por categoria gramátical')
195
- plt.axis('off')
196
-
197
- buf = io.BytesIO()
198
- fig.savefig(buf, format='png')
199
- buf.seek(0)
200
- st.image(buf, use_column_width=True)
201
- else:
202
- st.info("No hay datos de conteo de palabras disponibles.")
 
203
 
204
- ############################################# Diagramas de Arco (consolidados)#####################################################################3
205
  st.header("Diagramas de Arco")
206
  with st.expander("Ver todos los Diagramas de Arco"):
207
  for i, entry in enumerate(student_data['entries']):
@@ -209,7 +210,7 @@ def display_student_progress(username, lang_code='es'):
209
  st.subheader(f"Entrada {i+1} - {entry['timestamp']}")
210
  st.write(entry['arc_diagrams'][0], unsafe_allow_html=True)
211
 
212
- #################################### Diagramas de Red (consolidados) #######################################################################################3#
213
  st.header("Diagramas de Red")
214
  with st.expander("Ver todos los Diagramas de Red"):
215
  for i, entry in enumerate(student_data['entries']):
@@ -221,15 +222,19 @@ def display_student_progress(username, lang_code='es'):
221
  st.image(image_bytes)
222
  except Exception as e:
223
  st.error(f"Error al mostrar el diagrama de red: {str(e)}")
224
-
 
 
 
 
225
  ##############################################################Mostrar entradas recientes######################################################################
226
  #st.header("Entradas Recientes")
227
  #for i, entry in enumerate(student_data['entries'][:5]): # Mostrar las 5 entradas más recientes
228
  #with st.expander(f"Entrada {i+1} - {entry['timestamp']}"):
229
  #st.write(entry['text'])
230
- else:
231
- st.warning("No se encontraron entradas para este estudiante.")
232
- st.info("Intenta realizar algunos análisis de texto primero.")
233
 
234
  ##########################################################################
235
  def display_text_analysis_interface(nlp_models, lang_code):
 
170
 
171
  st.title(f"Progreso de {username}")
172
 
173
+ if student_data['entries_count'] > 0:
174
+ if 'word_count' in student_data and student_data['word_count']:
175
+ st.subheader("Total de palabras por categoria gramatical")
176
+
177
+ df = pd.DataFrame(list(student_data['word_count'].items()), columns=['category', 'count'])
178
+ df['label'] = df.apply(lambda x: f"{POS_TRANSLATIONS[lang_code].get(x['category'], x['category'])}\n({x['count']})", axis=1)
179
+
180
+ fig, ax = plt.subplots(figsize=(8, 6), dpi=100) # Tamaño reducido
181
+ colors = [POS_COLORS.get(cat, '#CCCCCC') for cat in df['category']]
182
+
183
+ squarify.plot(sizes=df['count'], label=df['label'], color=colors, alpha=0.8, ax=ax)
184
+
185
+ for text in ax.texts:
186
+ text.set_visible(False)
187
+
188
+ norm = plt.Normalize(df['count'].min(), df['count'].max())
189
+ for rect, label in zip(ax.patches, df['label']):
190
+ x = rect.get_x() + rect.get_width()/2
191
+ y = rect.get_y() + rect.get_height()/2
192
+ size = norm(rect.get_height() * rect.get_width())
193
+ ax.text(x, y, label, ha='center', va='center', fontsize=6+size*8) # Tamaño de fuente reducido
194
+
195
+ plt.title('Treemap del total de palabras por categoria gramátical')
196
+ plt.axis('off')
197
+
198
+ buf = io.BytesIO()
199
+ fig.savefig(buf, format='png')
200
+ buf.seek(0)
201
+ st.image(buf, use_column_width=True)
202
+ else:
203
+ st.info("No hay datos de conteo de palabras disponibles.")
204
 
205
+ # Diagramas de Arco (consolidados)
206
  st.header("Diagramas de Arco")
207
  with st.expander("Ver todos los Diagramas de Arco"):
208
  for i, entry in enumerate(student_data['entries']):
 
210
  st.subheader(f"Entrada {i+1} - {entry['timestamp']}")
211
  st.write(entry['arc_diagrams'][0], unsafe_allow_html=True)
212
 
213
+ # Diagramas de Red (consolidados)
214
  st.header("Diagramas de Red")
215
  with st.expander("Ver todos los Diagramas de Red"):
216
  for i, entry in enumerate(student_data['entries']):
 
222
  st.image(image_bytes)
223
  except Exception as e:
224
  st.error(f"Error al mostrar el diagrama de red: {str(e)}")
225
+ else:
226
+ st.warning("No se encontraron entradas para este estudiante.")
227
+ st.info("Intenta realizar algunos análisis de texto primero.")
228
+
229
+
230
  ##############################################################Mostrar entradas recientes######################################################################
231
  #st.header("Entradas Recientes")
232
  #for i, entry in enumerate(student_data['entries'][:5]): # Mostrar las 5 entradas más recientes
233
  #with st.expander(f"Entrada {i+1} - {entry['timestamp']}"):
234
  #st.write(entry['text'])
235
+ #else:
236
+ #st.warning("No se encontraron entradas para este estudiante.")
237
+ #st.info("Intenta realizar algunos análisis de texto primero.")
238
 
239
  ##########################################################################
240
  def display_text_analysis_interface(nlp_models, lang_code):