Gráficas de tiempo real con Plotly

Y aquí llega otra nueva entrada dedicada a Plotly, ésta vez sin notebook, para hacer una aplicación de «tiempo-real» que monitorice nuestra tarjeta gráfica. Por ahora, el código, que tenéis disponible en GitHub, hace uso de los datos que proporciona la NVIDIA System Management Interface. Pero éste método tiene un pega, y es que el SMI está pensado para la familia de gráficas Tesla™ y Quadro™, con el soporte a la gama GeForce™ está limitado a un par de parámetros. En éste caso aprovecharemos sólo temperatura y velocidad del ventilador.

Si abrimos una ventana de comandos y ejecutamos nvidia-smi nos debería aparecer una tabla como ésta ---es posible que tengamos que añadir la ruta al ejecutable a nuestro PATH, en mi caso 'C:\Program Files\NVIDIA Corporation\NVSMI'.

+------------------------------------------------------+
| NVIDIA-SMI 340.62     Driver Version: 340.62         |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 460    WDDM  | 0000:01:00.0     N/A |                  N/A |
| 40%   45C   P12    N/A /  N/A |    986MiB /  1023MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+

¡No te quedes sin ver el resto de la entrada!

Gráficas interactivas con Plotly

Podéis conseguir el notebook y los archivos asociados en GitHub.

En un artículo anterior ya vimos como pasar las gráficas creadas con matplotlib a plotly para obtener cierto nivel de interacción con los datos en la web. Ahora, lo que vamos a ver es cómo crear gráficas directamente con plotly. Para ello vamos a utilizar:

  • pandas 0.14.1, para trabajar con tablas de datos.
  • plotly 1.2.6, para crear las gráficas.

Importamos los paquetes de la manera habitual en cada caso.

import pandas as pd
import plotly.plotly as py
from plotly.graph_objs import *

En el caso de Plotly hemos importado además unos objetos graph_objs que nos serán de ayuda a la hora de crear las gráficas. Trabajar con la API de Plotly en Python se resume en trabajar con listas y diccionarios de Python. Los graph_objs de Plotly nos ayudarán a trabajar con estas listas y diccionarios proporcionando ayuda y validando los datos y parámetros introducidos.

Entre los objetos que importamos tenemos los bloques principales de trabajo:

  • Figure, diccionario que representa la figura a representar en plotly.
  • Data, lista para englobar todos los trazos a representar en una gráfica, ya sean tipo Scatter, Heatmap, Box, etc.
  • Layout, diccionario que define los detalles de la disposición de la figura.

Sigue leyendo

De matplotlib a la web con plotly

(También podéis seguir las explicaciones de este post con este Notebook)

En esta entrada trataremos de dar a conocer plotly, un servicio web gratuito para generar gráficos interactivos y que permite la creación de proyectos colaborativos.

Los paquetes que vamos a emplear son,

  • pandas 0.14.0, para importar y analizar estructuras de datos en Python.
  • matplotlib 1.3.1, para generar diversisos tipos de gráficos con calidad de imprenta.
  • plotly 1.1.2, para generar gráficos interactivos para la web.

Empezaremos por importar los datos con pandas. Podeis encontrar una introducción a pandas en éste post de Pybonacci.

Datos

La estructura de datos con la que vamos a trajar es un CSV con datos de telemetría correspondientes a un BMW Z4 GT3 compitiendo en el circuito Brands Hatch Indy. El paquete de datos nos lo ha proporcionado Steve Barker, un mecánico que pasa la mayor parte de su tiempo en la GP2. Pero aquí sólo vamos a trabajar con los datos de la vuelta 27 de la primera carrera.

Sigue leyendo!