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

  • 🎨 30+ tipos de gráficos - Scatter, bar, histogram, boxplot, heatmap, line, pie, violin, radviz, kde, polar 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 bestlib

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

💡 Inicio Rápido

from BESTLIB import MatrixLayout
import pandas as pd

# Cargar datos
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)

# Mostrar dashboard
layout = MatrixLayout("S")
layout.display()

Ejemplo con Múltiples Gráficos

from BESTLIB import ReactiveMatrixLayout
import pandas as pd

df = pd.read_csv('iris.csv')
layout = ReactiveMatrixLayout("""
SH
HB
""")

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

# Histograma enlazado
layout.add_histogram('H', df, col='petal_length', interactive=True)

# Bar chart
layout.add_barchart('B', df, x_col='species', y_col='sepal_length')

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
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
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 bestlib 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.1.0.tar.gz (330.3 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.1.0-py3-none-any.whl (383.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pybestlib-0.1.0.tar.gz
Algorithm Hash digest
SHA256 17714ec0daed6372c3d36dcfe00817796893765f766fafd4be5354764f9a1b03
MD5 b8dc59c6e8279ee7d80b10d8d8ab4782
BLAKE2b-256 06e4a4519dcc9c786f3cd9b5d8e8f3c385a637d6ba4908468f2fa38eb5791db2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pybestlib-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 383.2 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 224ead0bdb7a05e0cda792d2cd2384ef48fa1d896c31b10cb244f2a9d9512bf0
MD5 071b91295b119f8423f84a629e388c66
BLAKE2b-256 c0e2af8348ef4537220971017a201c64f6a9e50947aa2a4c4c50013512759f01

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