Skip to main content

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


Download files

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

Source Distribution

pyvmote-1.0.0.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

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

pyvmote-1.0.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

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

Hashes for pyvmote-1.0.0.tar.gz
Algorithm Hash digest
SHA256 baf23964eb6b16acda8246c4661f6c64e149d83bf9a0f03e7b7c818994768785
MD5 c25006220ee1339291bd57011197962e
BLAKE2b-256 aa61be8c5c196e045e68a692f6b5fac4b6986ce352f679706eb74426e087bb0e

See more details on using hashes here.

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

Hashes for pyvmote-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cbb9539e9e965ccfb04b85ce1006423e1c7b123b030eb2666ac0af9b3434a145
MD5 f2bac4a0c2cd9c6d0c9c5dcf6e92f3ac
BLAKE2b-256 7c89abbe827182fde3f422ca856747b74b12b0d6851bf5bd85827dabc3ddd9ef

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