prueba de concepto de multi bullets + scatter

para fusionar nuestras dos secciones en una sola, más informativa.
parent 08e417e5
......@@ -8,6 +8,61 @@ import numpy as np
import flask
import test_ch_2_b
def update_cobertura_series(etapaSel=1, min_comidas=10, min_glucosa=7):
gauges = {
'shape': "bullet",
'axis': {'range': [None, 100]},
'steps': [
{'range': [0, 25], 'color': "lightcyan"},
{'range': [25, 50], 'color': "lightblue"},
{'range': [50, 75], 'color': "skyblue"},
{'range': [75, 100], 'color': "steelblue"}],
'bar': {'color': "blue"},
}
numbers = { 'suffix':'%', 'valueformat':'.2f'}
modes = "number+gauge"
comidas_data = resumen_comidas.loc[(slice(None),f'e{etapaSel}')] > min_comidas
glucosa_data = glucometro_df.loc[glucometro_df["visit_id"] == etapaSel, "amount_of_days"] > min_glucosa
microbiota_data = num_secuencias[etapaSel-1]
glucosa_scatter = glucometro_df.loc[glucometro_df["visit_id"] == etapaSel]["amount_of_days"].sort_values()
glucosa_scatter.index = glucosa_scatter.index.astype(str)
# microbiota_data = visitas_datos[etapaSel-1]["muestra"].count()
# La N de la etapa debe ser el número de participantes que cumplieron la etapa.
# esto es diferente al número de participantes que asistieron a la visita N o N+1.
N_etapa = len(participantes.loc[participantes["finished_periods"].isin(range(etapaSel, 4))].index)
multi = make_subplots(rows=2, cols=1, specs=[[{"type":"indicator"}],[{}]])
multi.add_trace(go.Indicator(
value = 100 * comidas_data.sum() / N_etapa,
domain = {'x': [0.25, 1], 'y': [0.70, 0.8]},
title = {'text': "Comidas"},
mode = modes,
number = numbers,
gauge = gauges,
))
multi.add_trace(go.Indicator(
value = 100 * glucosa_data.sum() / N_etapa,
domain = {'x': [0.25, 1], 'y': [0.9, 1.0]},
title = {'text': "Glucómetro"},
mode = modes,
number = numbers,
gauge = gauges
))
multi.add_trace(go.Indicator(
value = 100 * microbiota_data / N_etapa,
domain = {'x': [0.25, 1], 'y': [0.5, 0.6]},
title = {'text': "Microbiota"},
mode = modes,
number = numbers,
gauge = gauges
))
multi.add_trace(
go.Scatter(x=glucosa_scatter.index, y=glucosa_scatter)
)
return multi
def get_visit_data(visitnumber):
url_visitas = url + "/visits/" + str(visitnumber) + "/patients-data"
......@@ -95,6 +150,7 @@ app = Dash(__name__, external_stylesheets=external_stylesheets, server=server, u
app.title = "NutrINDmex. Inventario de datos"
app.layout = html.Div(children=[
html.Div(children=[dcc.Graph(figure=update_cobertura_series())], className="wrapper"),
#encabezado
html.Div(children=[
html.P(children="🥑", className="header-emoji"),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment