Skip to content

Dashboard #3

Description

@juanabustilloarias-png

import pandas as pd
import streamlit as st
import plotly.express as px

FILE = "Consolidado_mensual_actividades_2023_2025.xlsx"
SHEET = "Consolidado_Mensual"

@st.cache_data
def load_data():
df = pd.read_excel(FILE, sheet_name=SHEET)
# Periodo viene como YYYY-MM; lo convertimos a fecha para ordenar y graficar bien
df["Periodo_dt"] = pd.to_datetime(df["Periodo"] + "-01")
df = df.sort_values("Periodo_dt")
return df

st.set_page_config(page_title="Neuroinmune | Actividades", layout="wide")
st.title("📊 Neuroinmune — Dashboard de Actividades (Mensual)")

df = load_data()

Filtros

years = sorted(df["Año"].unique())
sel_years = st.multiselect("Filtrar por año", years, default=years)

df_f = df[df["Año"].isin(sel_years)].copy()

KPIs

c1, c2, c3, c4 = st.columns(4)
c1.metric("Consultas", int(df_f["Consultas"].sum()))
c2.metric("Pruebas", int(df_f["Pruebas"].sum()))
c3.metric("Terapias", int(df_f["Terapias"].sum()))
c4.metric("Total actividades", int(df_f["Total_Actividades"].sum()))

Serie de tiempo

st.subheader("Evolución mensual")
df_long = df_f.melt(
id_vars=["Periodo_dt"],
value_vars=["Consultas","Pruebas","Terapias"],
var_name="Tipo",
value_name="Cantidad"
)

fig = px.line(df_long, x="Periodo_dt", y="Cantidad", color="Tipo", markers=True)
st.plotly_chart(fig, use_container_width=True)

Barras apiladas

st.subheader("Composición mensual (Consultas vs Pruebas vs Terapias)")
fig2 = px.bar(df_long, x="Periodo_dt", y="Cantidad", color="Tipo", barmode="stack")
st.plotly_chart(fig2, use_container_width=True)

Tabla

st.subheader("Tabla mensual")
st.dataframe(df_f.drop(columns=["Periodo_dt"]), use_container_width=True)

st.caption("Tip: agrega filas al Excel y reinicia/recarga la app para ver cambios.")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions