HTML Dashboard
Constructor de dashboards interactivos con Plotly. Sistema de grid CSS responsive, 6 temas profesionales integrados, y componentes como valueboxes, infoboxes, graficos y tablas.
Descripcion general
La clase HTML permite crear dashboards complejos de forma programatica. Caracteristicas principales:
- Grid CSS de 12 columnas configurable
- 6 temas profesionales + soporte para temas custom
- Valueboxes con iconos SVG (Heroicons)
- Infoboxes con estadisticas automaticas
- Graficos Plotly interactivos con boton info
- Boton flotante para preview de datos
Temas disponibles
ViewX incluye 6 temas profesionales listos para usar:
Corporate Blue
ID: 0
Dark Enterprise
ID: 1
Modern Green
ID: 2
Void Indigo
ID: 3
Glass Ocean
ID: 4
Cyberpunk Neon
ID: 5
Inicio rapido
Python
from viewx import HTML
import plotly.express as px
import pandas as pd
df = pd.DataFrame({"mes": [1,2,3,4], "ventas": [100,150,130,180]})
fig = px.line(df, x="mes", y="ventas")
# Crear dashboard
dash = HTML(
title="Dashboard Ventas",
theme="dark_enterprise", # o ID: 1
cols=12,
rows=8
)
# Agregar componentes
dash.add_valuebox("Total Ventas", "$560K", icon_key="dollar", row=1, col=1, height=2, width=3)
dash.add_valuebox("Clientes", "1,234", icon_key="users", row=1, col=4, height=2, width=3)
dash.add_chart(fig, title="Tendencia", row=3, col=1, height=5, width=12)
# Generar HTML
dash.generate("dashboard.html")
ThemeManager
ThemeManager(theme: int | str | dict)
Gestor de temas que soporta temas integrados por nombre o ID, y temas custom como diccionario.
theme int | str | dict - Nombre ("corporate_blue"), ID (0), o diccionario custom
Python
# Tema custom
custom = {
"bg_page": "#0D0D0D",
"bg_card": "#1A1A2E",
"accent": "#E94560",
"text_primary": "#EAEAEA",
"text_secondary": "#888888",
"chart_colors": ["#E94560", "#00D4FF", "#FFD166"]
}
dash = HTML(title="Mi Dashboard", theme=custom)
Constructor HTML
HTML(title, theme, cols, rows, gap, padding, navbar, authors, data_button, df)
Inicializa el constructor de dashboards con la configuracion del grid y tema.
title str - Titulo del dashboard
theme int | str | dict - Tema a usar
cols int, default=12 - Columnas del grid
rows int, default=12 - Filas del grid
gap int, default=16 - Espacio entre celdas (px)
data_button bool, default=False - Mostrar boton flotante de datos
df pd.DataFrame, optional - DataFrame para preview
add_valuebox()
add_valuebox(title, value, icon_key, color, row, col, height, width)
Agrega una caja de valor destacado con icono SVG. Ideal para KPIs y metricas principales.
title str - Etiqueta del KPI
value any - Valor a mostrar
icon_key str - Clave del icono (chart-bar, trending-up, dollar, hash, target, zap, users, activity, percent, clock)
row, col int - Posicion en el grid
height, width int - Tamano en celdas del grid
add_infobox()
add_infobox(df, variable, info, title, color, row, col, height, width)
Caja con multiples estadisticas para una variable. Calcula automaticamente mean, median, std, min, max, q1, q3, etc.
df pd.DataFrame - DataFrame con los datos
variable str - Nombre de la columna
info list[str], optional - Estadisticas a mostrar (mean, median, std, min, max, sum, count, kurtosis, skewness, q1, q3, iqr, nulls, nunique)
add_chart()
add_chart(fig, title, row, col, height, width)
Inserta un grafico Plotly interactivo. Incluye automaticamente un boton de info que abre un modal con detalles.
fig plotly.graph_objects.Figure - Figura de Plotly
title str - Titulo del grafico
add_table()
add_table(df, title, row, col, height, width)
Renderiza un DataFrame como tabla HTML estilizada con scroll.
add_text()
add_text(content, title, row, col, height, width)
Agrega una tarjeta de texto con titulo opcional. Soporta HTML basico.
generate()
generate(filename="dashboard.html")
Exporta el dashboard como archivo HTML autocontenido.
auto_generate()
auto_generate(df, title, theme, filename) → str
Funcion standalone que genera automaticamente un dashboard completo a partir de un DataFrame. Detecta tipos de columnas, genera KPIs, graficos y tablas de forma inteligente.
df pd.DataFrame - DataFrame a visualizar
title str - Titulo del dashboard
theme int | str | dict - Tema a usar
filename str - Ruta del archivo de salida
Python
from viewx import HTML
from viewx.datasets import load_dataset
df = load_dataset("iris")
HTML.auto_generate(
df,
title="Iris Dashboard",
template="glass_ocean",
filename="iris_dash.html",
layout="chart_focus",
show=False,
)