En este tutorial, creamos un panel interactivo avanzado de varias páginas utilizando Panel. A través de cada componente de la implementación, exploramos cómo generar datos sintéticos, aplicar filtros enriquecidos, visualizar tendencias dinámicas de series de tiempo, comparar segmentos y regiones e incluso simular actualizaciones de KPI en vivo. Diseñamos el sistema paso a paso para que podamos comprender realmente cómo cada widget, devolución de llamada y función de trazado se combinan para crear una experiencia analítica reactiva y fluida. Consulte los códigos completos aquí.
subproceso.check_call([sys.executable, “-m”, “pip”, “install”, “-q”] + paquetes) intente: importar panel como pn importar hvplot.pandas importar pandas como pd importar numpy como np excepto ImportError: install_deps() importar panel como pn importar hvplot.pandas importar pandas como pd importar numpy como np pn.extension() rng = np.random.default_rng(42) fechas = pd.date_range(“2024-01-01″, periodos=365, freq=”D”) segmentos = [“A”, “B”, “C”]
regiones = [“North”, “South”, “East”, “West”]
base = pd.DataFrame( { “fecha”: np.tile(fechas, len(segmentos) * len(regiones)), “segmento”: np.repeat(segmentos, len(fechas) * len(regiones)), “región”: np.repeat(np.tile(regiones, len(segmentos)), len(fechas)), } ) base[“traffic”] = ( 100 + 40 * np.sin(2 * np.pi * base[“date”].dt.dayofyear / 365) + rng.normal(0, 15, len(base)) ) tendencia = {“A”: 1.0, “B”: 1.5, “C”: 2.0} base[“traffic”] *= base[“segment”].map(tendencia) base[“conversions”] = (base[“traffic”] * rng.uniform(0.01, 0.05, len(base))).astype(int) base[“revenue”] = base[“conversions”] * rng.uniform(20, 60, len(base)) df = base.reset_index(drop=True)
Instalamos todas las dependencias necesarias y cargamos Panel, hvPlot, Pandas y NumPy para que el panel funcione sin problemas en Colab. Generamos un año completo de datos sintéticos de series de tiempo en todos los segmentos y regiones, lo que proporciona un rico conjunto de datos para la exploración. Al final de este bloque, tendremos un marco de datos limpio y listo para usar para todas las visualizaciones futuras. Consulte los códigos completos aquí.
Creamos los widgets interactivos y la lógica de filtrado que controla todo el panel. Conectamos el gráfico de series de tiempo a los widgets usando @pn.depends reactivo, lo que nos permite cambiar segmentos, regiones, métricas, rangos de fechas y ventanas de suavizado al instante. Con esta configuración podremos cambiar de perspectiva de forma fluida y ver los efectos en tiempo real. Consulte los códigos completos aquí.
Construimos capas visuales adicionales: un gráfico de barras a nivel de segmento y un mapa de calor de segmento de región. Dejamos que estos gráficos reaccionen a los mismos filtros globales, por lo que se actualizan automáticamente cada vez que hacemos una selección. Esto nos brinda un desglose más profundo de los patrones entre categorías sin escribir código redundante. Consulte los códigos completos aquí.
def Compute_kpi (slice_df): si slice_df.empty: devuelve 0, 0, 0 total_rev = slice_df[“revenue”].sum() avg_conv = segmento_df[“conversions”].mean() cr = (slice_df[“conversions”].sum()/slice_df[“traffic”].sum()) * 100 return total_rev, avg_conv, cr kpi_value = pn.indicators.Number(name=”Ingresos totales (ventana)”, valor=0, formato=”$0,0″) conv_value = pn.indicators.Number(name=”Conversiones promedio”, valor=0, formato=”0.0″) cr_value = pn.indicators.Number(name=”Tasa de conversión”, valor=0, formato=”0.00%”) def update_kpis(): paso = 200 inicio = kpi_idx[0]
fin = inicio + paso si inicio >= len(kpi_source): kpi_idx[0] = 0 inicio, fin = 0, paso window_df = kpi_source.iloc[start:end]
kpi_idx[0] = fin total_rev, avg_conv, cr = Compute_kpi(window_df) kpi_value.value = total_rev conv_value.value = avg_conv cr_value.value = cr / 100 pn.state.add_periodic_callback(update_kpis, period=1000, start=True)
Simulamos un flujo continuo de KPI que se actualizan cada segundo, creando una experiencia de panel en vivo. Calculamos los ingresos totales, las conversiones promedio y la tasa de conversión dentro de una ventana deslizante y enviamos los valores a los indicadores numéricos del Panel. Esto nos permite observar cómo las métricas evolucionan continuamente, como un sistema de seguimiento real. Consulte los códigos completos aquí.
Montamos todos los componentes en un diseño limpio de varias páginas mediante pestañas. Organizamos el panel en una página de descripción general, una página de información valiosa y una página de KPI en vivo, lo que hace que la navegación sea simple e intuitiva. Con esta estructura, obtenemos una aplicación de análisis interactiva y pulida lista para ejecutarse directamente en Google Colab.
En conclusión, vemos cómo podemos combinar perfectamente los widgets del Panel, las visualizaciones de hvPlot y las devoluciones de llamada periódicas para crear un potente panel de análisis. Apreciamos cómo cada módulo, desde la lógica de filtrado hasta los gráficos de barras y la transmisión de KPI en vivo, encaja para producir una interfaz cohesiva de varias páginas que se ejecuta sin esfuerzo. Terminamos con un sistema completo e interactivo que podemos extender a paneles de control de producción, experimentación o informes del mundo real.
Consulte los códigos completos aquí. No dude en consultar nuestra página de GitHub para tutoriales, códigos y cuadernos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.
Asif Razzaq es el director ejecutivo de Marktechpost Media Inc.. Como empresario e ingeniero visionario, Asif está comprometido a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, Marktechpost, que se destaca por su cobertura en profundidad del aprendizaje automático y las noticias sobre aprendizaje profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el público.
🙌 Siga MARKTECHPOST: agréguenos como fuente preferida en Google.