Skip to main content

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

Project description

📊 BESTLIB

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

Python 3.8+ License: MIT Jupyter

BESTLIB es una librería de visualización interactiva que te permite crear dashboards profesionales en Jupyter Notebooks usando layouts ASCII y gráficos D3.js. Diseñada para ser simple, poderosa y completamente interactiva.

✨ Características Principales

  • 🎨 25+ tipos de gráficos - Scatter, bar, histogram, boxplot, heatmap, line, pie, violin, radviz, kde y más
  • 🔗 Vistas enlazadas - Sincronización automática entre múltiples 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

🚀 Instalación

pip install pybestlib

Para Google Colab

!pip install pybestlib

Nota: Colab ya incluye las dependencias necesarias (pandas, numpy, ipywidgets). La instalación puede mostrar advertencias sobre conflictos de versiones, pero esto es normal y no afecta la funcionalidad.

📚 Documentación

La documentación completa y ejemplos detallados están disponibles en:

💡 Inicio Rápido

from BESTLIB.reactive import ReactiveMatrixLayout, SelectionModel
import pandas as pd

# Cargar datos
df = pd.read_csv('iris.csv')

# Crear layout y establecer datos
layout = ReactiveMatrixLayout("S", selection_model=SelectionModel())
layout.set_data(df)  # ⚠️ IMPORTANTE: Establecer datos primero

# Agregar scatter plot interactivo
layout.add_scatter(
    'S',
    x_col='sepal_length',
    y_col='petal_length',
    category_col='species',
    interactive=True
)

layout.display()

Ejemplo con Múltiples Gráficos y Vistas Enlazadas

from BESTLIB.reactive import ReactiveMatrixLayout, SelectionModel
import pandas as pd

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

# Definir el layout
layout = ReactiveMatrixLayout("SHB", selection_model=SelectionModel())
layout.set_data(df)

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

# Histograma enlazado a la selección del scatter
layout.add_histogram('H', column='petal_length', linked_to='S')

# Bar chart enlazado a la selección del scatter
layout.add_barchart('B', x_col='species', y_col='sepal_length', 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 simples
Grouped Bar Chart 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
Violin Plot add_violin() Distribuciones de densidad

Gráficos Avanzados

Gráfico Método Descripción
Heatmap add_heatmap() Mapas de calor
Correlation Heatmap add_correlation_heatmap() Matriz de correlación
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
QQ Plot add_qqplot() Gráfico cuantil-cuantil
ECDF add_ecdf() Función de distribución acumulativa empírica
Errorbars add_errorbars() Barras de error
Fill Between add_fill_between() Área entre dos curvas
Ribbon add_ribbon() Cinta entre series
Step Plot add_step() Gráfico de escalones

Gráficos Especializados

Gráfico Método Descripción
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
Confusion Matrix add_confusion_matrix() Matriz de confusión (ML)

🎯 Casos de Uso

  • Análisis exploratorio de datos - Visualiza rápidamente tus DataFrames
  • Dashboards interactivos - Crea interfaces de análisis sin HTML/JavaScript
  • Presentaciones dinámicas - Gráficos que responden a interacciones del usuario
  • Enseñanza de datos - Visualizaciones interactivas para educación

🔧 Dependencias

BESTLIB funciona con dependencias opcionales. Para funcionalidad completa, instala:

pip install ipython ipywidgets pandas numpy

Opcional: scikit-learn (solo para add_confusion_matrix())

🤝 Contribuciones

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

¿Encontraste un bug o tienes una sugerencia? ¡Abre un issue!

📄 Licencia

MIT License - Ver LICENSE para más detalles.


¿Listo para crear visualizaciones increíbles?pip install pybestlib y comienza ahora.

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.3.1.tar.gz (349.6 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.3.1-py3-none-any.whl (398.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pybestlib-0.3.1.tar.gz
Algorithm Hash digest
SHA256 a152c2425ece4ca9395822d6f9149ab4eee39da5225e2bf55ee2b314543f3f6e
MD5 ce308fb2bc92984fd92ee6873ffe07ca
BLAKE2b-256 f98f7d476a68679f9923462bfd33b1a252caaac124b1ff8a4ff100615d6d5cc1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pybestlib-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 398.9 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dda702374e2e60c6b140266fbb7efe8c607508b61d55088c9d2fda474896dd9a
MD5 13316e36eb70d88eed341725601a23a6
BLAKE2b-256 b26d8a3a86d95c9af0f84a21116a4fb0460d27165e7698b808e5f547d16a1c28

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