Skip to main content

BestLib, the best lib for graphics - Interactive dashboards for Jupyter with D3.js

Project description

📊 BESTLIB - Beautiful & Efficient Visualization Library

BESTLIB es una librería de visualización interactiva para Jupyter Notebooks que permite crear dashboards con layouts ASCII y gráficos D3.js.

✨ Características

  • 🎨 28 tipos de gráficos - Desde básicos hasta visualizaciones avanzadas
  • 🔗 Vistas enlazadas - Sincronización automática entre gráficos
  • Sistema reactivo - Actualización automática sin re-ejecutar celdas
  • 🖱️ Interactividad completa - Brush selection, click events, tooltips personalizables
  • 📐 Layouts ASCII - Define la disposición de gráficos con texto simple
  • 🐼 Soporte pandas nativo - Trabaja directamente con DataFrames sin conversiones
  • 🎯 Comunicación bidireccional - Python ↔ JavaScript en tiempo real

📦 Instalación

Desde PyPI

pip install bestlib

Para Google Colab

!pip install bestlib

Nota: Colab ya incluye las dependencias necesarias (pandas, numpy, ipywidgets).

Dependencias Requeridas

BESTLIB requiere las siguientes dependencias (deben instalarse manualmente si no están presentes):

  • ipython (cualquier versión >= 7.0)
  • ipywidgets (cualquier versión >= 7.0)
  • pandas (cualquier versión >= 1.3.0)
  • numpy (cualquier versión >= 1.20.0)

Nota: El código maneja las importaciones de forma opcional, por lo que BESTLIB funcionará incluso si algunas dependencias no están instaladas (con funcionalidades limitadas).

🚀 Inicio Rápido

Ejemplo Básico

from BESTLIB import MatrixLayout
import pandas as pd

df = pd.read_csv('iris.csv')

# Crear scatter plot interactivo
MatrixLayout.map_scatter('S', df, 
                         x_col='sepal_length', 
                         y_col='petal_length',
                         category_col='species',
                         interactive=True)

layout = MatrixLayout("S")
layout.display()

Dashboard con Vistas Enlazadas

from BESTLIB import ReactiveMatrixLayout, SelectionModel
import pandas as pd

df = pd.read_csv('iris.csv')
layout = ReactiveMatrixLayout("""
SH
BB
""", selection_model=SelectionModel())

# Scatter plot principal (selección interactiva)
layout.add_scatter('S', df, x_col='sepal_length', y_col='petal_length',
                   category_col='species', interactive=True)

# Histograma enlazado (se actualiza automáticamente)
layout.add_histogram('H', column='petal_length', linked_to='S')

# Bar chart enlazado
layout.add_barchart('B', category_col='species', linked_to='S')

layout.display()

📊 Tipos de Gráficos Disponibles

Gráficos Básicos

Gráfico Método Descripción
Scatter Plot add_scatter() Dispersión con brush selection
Bar Chart add_barchart() Barras verticales
Grouped Bar add_grouped_barchart() Barras agrupadas por categoría
Horizontal Bar add_horizontal_bar() Barras horizontales
Histogram add_histogram() Distribuciones con bins configurables
Boxplot add_boxplot() Diagramas de caja por categoría
Line Chart add_line() Series temporales y múltiples líneas
Line Plot add_line_plot() Gráfico de líneas alternativo
Pie Chart add_pie() Gráficos circulares
Step Plot add_step() Gráfico de escalones

Gráficos Avanzados

Gráfico Método Descripción
Heatmap add_heatmap() Mapas de calor
Hexbin add_hexbin() Dispersión con bins hexagonales
Hist2D add_hist2d() Histograma 2D (densidad bivariada)
KDE add_kde() Estimación de densidad kernel
Distplot add_distplot() Histograma + KDE + rug plot
Rug Plot add_rug() Marcadores marginales
QQ Plot add_qqplot() Gráfico cuantil-cuantil
ECDF add_ecdf() Función de distribución acumulativa empírica
Ridgeline add_ridgeline() Distribuciones apiladas
Errorbars add_errorbars() Barras de error
Fill Between add_fill_between() Área entre dos curvas
Ribbon add_ribbon() Cinta entre series

Gráficos Especializados

Gráfico Método Descripción
Violin Plot add_violin() Distribuciones de densidad
RadViz add_radviz() Visualización radial multidimensional
Star Coordinates add_star_coordinates() Coordenadas estelares
Parallel Coordinates add_parallel_coordinates() Coordenadas paralelas
Polar add_polar() Gráfico polar/radial
Funnel add_funnel() Gráfico de embudo

💡 Ejemplos de Uso

Dashboard Completo

from BESTLIB import ReactiveMatrixLayout, SelectionModel
import pandas as pd

df = pd.read_csv('data.csv')
layout = ReactiveMatrixLayout("""
SSBB
HHPP
""", selection_model=SelectionModel())

# Vista principal
layout.add_scatter('S', df, x_col='x', y_col='y', 
                   category_col='category', interactive=True)

# Gráficos enlazados
layout.add_barchart('B', category_col='category', linked_to='S')
layout.add_histogram('H', column='value', linked_to='S', bins=20)
layout.add_pie('P', category_col='category', linked_to='S')

layout.display()

Gráficos Avanzados

# KDE (Kernel Density Estimation)
layout.add_kde('K', column='value', linked_to='S')

# Hexbin para datos densos
layout.add_hexbin('H', x_col='x', y_col='y', linked_to='S')

# Heatmap
layout.add_heatmap('M', x_col='col', y_col='row', value_col='val', linked_to='S')

📚 Documentación

🤝 Contribuciones

Desarrollado por Nahia Escalante, Alejandro Rojas y Max Antúnez

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybestlib-0.2.0.tar.gz (457.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pybestlib-0.2.0-py3-none-any.whl (535.8 kB view details)

Uploaded Python 3

File details

Details for the file pybestlib-0.2.0.tar.gz.

File metadata

  • Download URL: pybestlib-0.2.0.tar.gz
  • Upload date:
  • Size: 457.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for pybestlib-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9e0fab70eaa1e1001a88ddd0be30e5d865db4813b64f58e743949418b7f00a94
MD5 9dc2e210673b8b32322059ff47b3094a
BLAKE2b-256 609a95250da132cbad724460954516ec8dcfba4165b359ac9d9b3c6fe7b25393

See more details on using hashes here.

File details

Details for the file pybestlib-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pybestlib-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 535.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for pybestlib-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b4cb181ed74ad466bc2a649b34ccfbb6c0e0ae2bfd6db2fd2d6b773e1f6c220
MD5 742dc16359812d54d7d7f69b36d6ccf7
BLAKE2b-256 d55c99888f292dd8c14769d16365683184898bdedc9a9729eb5ea8bc3848d7c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page