Este artículo se actualizó el 2020/04/18 para usar las últimas versiones de las bibliotecas que se comentan.
Esto pretende ser un tutorial del módulo pyplot de la librería matplotlib. El tutorial lo dividiremos de la siguiente forma (que podrá ir cambiando a medida que vayamos avanzando).
- Primeros pasos
- Creando ventanas, manejando ventanas y configurando la sesión
- Configuración del gráfico
- Tipos de gráfico I
- Tipos de gráfico II
- Tipos de gráfico III
- Tipos de gráfico IV
- Texto y anotaciones (arrow, annotate, table, text…)
Herramientas estadísticas (acorr, cohere, csd, psd, specgram, spy, xcorr, …)Eventos e interactividad (connect, disconnect, ginput, waitforbuttonpress…)- Miscelánea
[Para este tutorial se ha usado python 3.7.6, ipython 7.13.0, numpy 1.17.2 y matplotlib 3.1.1]
En todo momento supondremos que se ha iniciado la sesión y se ha hecho
1 2 |
import matplotlib.pyplot as plt import numpy as np |
Para empezar diremos que hay tres formas de usar la librería Matplotlib:
- La podemos usar desde python usando el módulo
pylab
. El módulopylab
pretende mostrar un entorno de trabajo parecido al de matlab mezclando las librerías numpy y matplotlib. Es la forma menos pythónica de usar matplotlib y se obtiene usando:
1 |
from pylab import * |
Normalmente solo se recomienda para hacer pruebas rápidas desde la línea de comandos.
- Una segunda forma, que es la que veremos en este tutorial, es usando el módulo pyplot.
1 |
import matplotlib.pyplot as plt |
- Por último, la forma más recomendable y pythónica, pero más compleja, sería usar matplotlib mediante la interfaz orientada a objetos. Cuando se programa con matplotlib, no mientras se trabaja interactivamente, esta es la forma que permite tener más control sobre el código. Quizá veamos esto en el futuro si alguno nos animamos/os animáis a escribir sobre ello.
Absolutamente todo lo que vamos a usar en este tutorial y que está relacionado con matplotlib.pyplot
lo podréis encontrar documentado y detallado aquí. Como he comentado, todo lo que vamos a ver está en el anterior enlace, pero no todo lo que está en el anterior enlace lo vamos a ver. Por ejemplo, en el índice veréis que he tachado los puntos 9 y 10, las funciones estadísticas y las funciones que permiten meter algo de interactividad en los gráficos dentro de pyplot. Las funciones estadísticas incluidas son pocas, algunas son complejas y muy específicas y las veo poco coherentes como grupo dentro de pyplot
, para ello ya tenemos scipy y estas funciones estarían mejor ahí para separar lo que es ‘gráficar’ (en español de Sudámerica existe la palabra) de lo que es analizar datos. Para interactividad con los gráficos tenemos el módulo matplotlib.widgets
, muchísimo más completo.
Para que quede claro desde un principio, las dos zonas principales donde se dibujarán cosas o sobre las que se interactuará serán:
- figure, que es una instancia de
matplotlib.figure.Figure
. Y es la ventana donde irá el o los gráficos en sí:
axes
, que es una instancia dematplotlib.axes.Axes
, que es el gráfico en sí donde se dibujará todo lo que le digamos y está localizada dentro de unafigure
.
Para lo primero (figure
) usaremos la palabra ‘ventana’ mientras que para lo segundo (axes
) usaremos la palabra ‘gráfico’.
Si quieres puedes pasar a la siguiente sección.
Kiko, ¿te parece si añades o me das permiso para añadir la etiqueta «python» a tus entradas? Es para que salgan aquí
http://es.wordpress.com/#!/read/topic/python/
¡Muchas gracias por estos tutoriales! Estoy aprendiendo un montón 😛
Pingback: Pybonacci estrena canal en Youtube « Pybonacci
Pingback: Bitacoras.com
Pingback: Reseña del libro “Learning NumPy Array” de Ivan Idris | Pybonacci
Pingback: Pybonacci estrena canal en Youtube | Pybonacci
Buen día, agradeciéndole por los tutoriales. Mi consulta es la siguiente, Puedo cambiar el tamaño del texto en las gráficas que sale por defecto?? como en los ejes x,y en leyendas etc??
Le puedes echar un ojo a http://matplotlib.org/api/matplotlib_configuration_api.html#matplotlib.rc
Unas líneas más abajo en el enlace verás como configurar la fuente de texto.
Puedes configurar casi cualquier aspecto de matplotlib de forma permanente usando los parámetros
rc
de configuración, http://matplotlib.org/users/customizing.html.