Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -221,30 +221,46 @@ def generate_detailed_analysis(query, match):
|
|
| 221 |
|
| 222 |
# --- NUEVA FUNCI脫N PARA CREAR EL GR脕FICO ---
|
| 223 |
def create_relevance_chart(results):
|
| 224 |
-
"""Crea un gr谩fico de barras de Altair para visualizar la relevancia
|
| 225 |
# Preparar los datos para el gr谩fico (tomamos los 5 mejores)
|
| 226 |
top_results = results[:5]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 227 |
chart_data = {
|
| 228 |
-
"Condici贸n":
|
| 229 |
"Relevancia": [res['score']['total'] for res in top_results]
|
| 230 |
}
|
| 231 |
source = pd.DataFrame(chart_data)
|
| 232 |
|
| 233 |
# Crear el gr谩fico
|
| 234 |
-
chart = alt.Chart(source).mark_bar().encode(
|
| 235 |
x=alt.X('Relevancia:Q', title='Puntuaci贸n de Relevancia'),
|
| 236 |
-
y=alt.Y('Condici贸n:N', sort='-x', title='Posible Condici贸n'
|
| 237 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 238 |
).properties(
|
| 239 |
title='Principales Coincidencias seg煤n tu Caso'
|
| 240 |
).configure_axis(
|
| 241 |
labelFontSize=12,
|
| 242 |
titleFontSize=14
|
| 243 |
).configure_title(
|
| 244 |
-
fontSize=16
|
|
|
|
| 245 |
)
|
| 246 |
return chart
|
| 247 |
|
|
|
|
| 248 |
# --- INTERFAZ DE USUARIO (UI) ---
|
| 249 |
col_img, col_text = st.columns([1, 4], gap="medium")
|
| 250 |
with col_img:
|
|
|
|
| 221 |
|
| 222 |
# --- NUEVA FUNCI脫N PARA CREAR EL GR脕FICO ---
|
| 223 |
def create_relevance_chart(results):
|
| 224 |
+
"""Crea un gr谩fico de barras de Altair legible para visualizar la relevancia."""
|
| 225 |
# Preparar los datos para el gr谩fico (tomamos los 5 mejores)
|
| 226 |
top_results = results[:5]
|
| 227 |
+
|
| 228 |
+
# Limpiamos los nombres para que no sean excesivamente largos en el gr谩fico
|
| 229 |
+
condition_names = []
|
| 230 |
+
for res in top_results:
|
| 231 |
+
# Quitamos par茅ntesis y acortamos si es necesario para el display
|
| 232 |
+
name = re.sub(r'\(.*\)', '', res['entry']['condicion_asociada']).strip()
|
| 233 |
+
condition_names.append(name)
|
| 234 |
+
|
| 235 |
chart_data = {
|
| 236 |
+
"Condici贸n": condition_names,
|
| 237 |
"Relevancia": [res['score']['total'] for res in top_results]
|
| 238 |
}
|
| 239 |
source = pd.DataFrame(chart_data)
|
| 240 |
|
| 241 |
# Crear el gr谩fico
|
| 242 |
+
chart = alt.Chart(source).mark_bar(color='#1f77b4').encode(
|
| 243 |
x=alt.X('Relevancia:Q', title='Puntuaci贸n de Relevancia'),
|
| 244 |
+
y=alt.Y('Condici贸n:N', sort='-x', title='Posible Condici贸n',
|
| 245 |
+
axis=alt.Axis(
|
| 246 |
+
labelLimit=300 # <-- 隆ESTA ES LA L脥NEA CLAVE! Aumenta el espacio para las etiquetas.
|
| 247 |
+
)),
|
| 248 |
+
tooltip=[
|
| 249 |
+
alt.Tooltip('Condici贸n:N', title='Condici贸n'),
|
| 250 |
+
alt.Tooltip('Relevancia:Q', title='Puntuaci贸n')
|
| 251 |
+
]
|
| 252 |
).properties(
|
| 253 |
title='Principales Coincidencias seg煤n tu Caso'
|
| 254 |
).configure_axis(
|
| 255 |
labelFontSize=12,
|
| 256 |
titleFontSize=14
|
| 257 |
).configure_title(
|
| 258 |
+
fontSize=16,
|
| 259 |
+
anchor='start' # Alinea el t铆tulo a la izquierda, se ve m谩s profesional
|
| 260 |
)
|
| 261 |
return chart
|
| 262 |
|
| 263 |
+
|
| 264 |
# --- INTERFAZ DE USUARIO (UI) ---
|
| 265 |
col_img, col_text = st.columns([1, 4], gap="medium")
|
| 266 |
with col_img:
|