Librería para generar gráficos y visualizar imágenes en tiempo real en remoto
Project description
📊 PyVmote
PyVmote es una librería de Python para la generación y visualización remota de gráficos, tanto estáticos como interactivos, usando un servidor FastAPI. Permite visualizar gráficas directamente desde tu navegador incluso cuando trabajas en un entorno remoto (como SSH), gracias a su sistema de forwarding de puertos y WebSocket en tiempo real.
🚀 Características principales
-
📈 Soporte para múltiples tipos de gráficos:
- Line plot
- Scatter plot
- Bar plot
- Histogram
- Boxplot
- Density plot (KDE)
- Clusters
- Pie Graphs
-
🌐 Servidor web integrado con FastAPI
-
⚡ Recarga automática de gráficos mediante WebSocket
-
🌍 Visualización remota con un simple túnel SSH
-
🖱️ Soporte para gráficos interactivos con
mpld3 -
📸 Exportación de gráficos a formatos
png,jpg,svg,pdf, etc. -
🧠 Historial de gráficos generado automáticamente
Instalacion
para instalar la libreria simplemente cree un entorno de desarrollo con python y venv he instale la libreria usando pip
pip install pyvmote
Flujo de trabajo
Importacion
Pyvmote funciona como una clase fachada que te permite usar todas las funciones a tarves de un objeto.
import pyvmote as pyv
Iniciar servidor
podras elegir en que puerto se inicia el servidor
start_server(puerto)
Creacion de Gráficos
Una vez que hayas iniciado el servidor podras ir a tu browser de confianza y empezar a ver graficos mientras los generes en tu http://localhost:port/ Los graficos se hacen con soporte de matplotlib por lo cual todos los parametros de los graficos presentes en esta libreria funcionan con los mismos parametros de matplotlib.
En cada grafico generado de aqui puede definir con un parametro que interative = True -> (Gráfico interactivo) o interactive = False -> (Imagen).
-
Line plots ⇒ x e y son listas de numeros y x puede ser un dataframe de pandas
pyv.line_plot(x, y=None, xname="X", yname="Y", title="Line Graph", interactive=True, color='blue', linewidth=2, xlim=None, ylim=None) -
Scatter plots ⇒ x e y son listas de numeros y x puede ser un dataframe de pandas
pyv.scatter_plot(x, y=None, xname="X", yname="Y", title="Scatter Plot", interactive=True, color='blue', xlim=None, ylim=None) -
Bar Plots ⇒ x e y son listas de numeros y x puede ser un dataframe de pandas
pyv.bar_plot(x, y=None, xname="X", yname="Y", title="Bar Plot", interactive=True, color='blue', xlim=None, ylim=None): -
Historigram ⇒ x puede ser una lista y puede ser un dataframe de pandas
pyv.hist_plot(x, xname="Value", yname="Frequency", title="Histogram", bins=20, interactive=True, color='blue', xlim=None, ylim=None): -
Box plot ⇒ x puede ser una lista y puede ser un dataframe de pandas
pyv.box_plot(x, xname="", yname="Value", title="Box Plot", interactive=True): -
Density plots (KDE) ⇒ x puede ser una lista y puede ser un dataframe de pandas
pyv.density_plot(x, xname="X", yname="Density", title="Density Plot", interactive=True, color='blue', xlim=None, ylim=None) -
Pie Graph ⇒ sizes es una lista de porcentages que sumen 100% y labels es una lista de titulos para cada uno de klos trozos de tarta
pyv.pie_plot(sizes, labels=None, title="Pie Chart", interactive=True, colors=None): -
cluster plot ⇒ data es una lista de puntos 2D y labels es una lista de numeros que marcan de que punto es cada cluster
import numpy as np from sklearn.datasets import make_blobs data, labels = make_blobs(n_samples=100, centers=3, n_features=2) pyv.cluster_plot(self, data, labels, title="Cluster Plot", interactive=True, cmap='viridis', xlim=None, ylim=None):
Descargar Gráficos
Puedes descargar los graficos en formato png desde la pestaña preview o con el formato que quieras usando. El parametro title se refiere al titulo del grafico
plt.export_graph(self, title, extension="jpg", target_folder="exports")
Cerrar Servidor
Esto se hace de forma automatica cuandos se acaba el programa o cierras la linea de comandos pero si quieres hacerlo antes
pyv.stop_server()
⚠️ Warning: Esto no solo cerrara el servidor sino tambien borrara todas las imagenes creadas y todo el historial, por ello si quieres conservar alguna imagen recuerda descargarla en la pestaña preview
Project details
Release history Release notifications | RSS feed
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 pyvmote-1.0.0.tar.gz.
File metadata
- Download URL: pyvmote-1.0.0.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
baf23964eb6b16acda8246c4661f6c64e149d83bf9a0f03e7b7c818994768785
|
|
| MD5 |
c25006220ee1339291bd57011197962e
|
|
| BLAKE2b-256 |
aa61be8c5c196e045e68a692f6b5fac4b6986ce352f679706eb74426e087bb0e
|
File details
Details for the file pyvmote-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pyvmote-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbb9539e9e965ccfb04b85ce1006423e1c7b123b030eb2666ac0af9b3434a145
|
|
| MD5 |
f2bac4a0c2cd9c6d0c9c5dcf6e92f3ac
|
|
| BLAKE2b-256 |
7c89abbe827182fde3f422ca856747b74b12b0d6851bf5bd85827dabc3ddd9ef
|