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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17714ec0daed6372c3d36dcfe00817796893765f766fafd4be5354764f9a1b03
|
|
| MD5 |
b8dc59c6e8279ee7d80b10d8d8ab4782
|
|
| BLAKE2b-256 |
06e4a4519dcc9c786f3cd9b5d8e8f3c385a637d6ba4908468f2fa38eb5791db2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
224ead0bdb7a05e0cda792d2cd2384ef48fa1d896c31b10cb244f2a9d9512bf0
|
|
| MD5 |
071b91295b119f8423f84a629e388c66
|
|
| BLAKE2b-256 |
c0e2af8348ef4537220971017a201c64f6a9e50947aa2a4c4c50013512759f01
|