Introducción a la librería Matplotlib de Python

Como programador que escribe en un blog regularmente, siempre necesito ver mis progresiones y vuestras visitas en gráficos que me ayuden a comprenderlo todo. Esto no siempre es sencillo para mi, y he tenido que utilizar las herramientas que he tenido a mano, de la mejor manera que he podido, pero nunca estaba satisfecho con los gráficos generados la mayor parte de las veces. Siempre me preguntaba, cómo otros programadores-redactores como yo, producían los gráficos que deseaban.

Este problema se redujo notablemente cuando me topé con la librería matplotlib de Python, la cual genera gráficos según tus deseos. Como se puede leer en la web de Python:

matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala MATLAB®* or Mathematica®), web application servers, and six graphical user interface toolkits. matplotlib tries to make easy things easy and hard things possible. You can generate plots, histograms, power spectra, bar charts, errorcharts, scatterplots, etc, with just a few lines of code.

En este tutorial, vamos a enseñarte a instalar la librería matplotlib, y después veremos unos cuantos ejemplos de uso.

Instalando matplotlib

Instalar matplotlib es muy simple. Actualmente estoy trabajndo en una máquina Mac OS X, por lo tanto te enseñaré cómo instalar la librería en dicho sistema operativo. Por favor, échale un vistazo a la página de instalación de matplotlib para más información sobre cómo instalar matplotlib en otros sistemas operativos.

Matplotlib puede ser instalada ejecutando los siguientes comandos en tu terminal. Yo utilizaré pip, pero tú puedes utilizar otras herramientas.

curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install matplotlib

Esto es todo. Ya tienes matplotlib listo y funcionando. ¿A que ha sido muy fácil?

Dibujando gráficos simples

Ahora vamos a ver cómo funciona matplotlib con algunos ejemplos. Vamos a ver cómo dibujar ciertos gráficos con la librería.

Gráfico de líneas

Vamos a crear un gráfico de líneas utilizando la librería matplotlib. En este caso, vamos a utilizar matplotlib.pyplot, que nos provee de un framework de gráficos parecido a MATLAB. En otras palabras, nos proporciona una colección de funciones que permiten que matplotlib funcione como MATLAB.

Digamos que queremos dibujar una línea en el siguiente conjunto de puntos:

x = (4,8,13,17,20)
y = (54, 67, 98, 78, 45)

Esto puede realizarse utilizando el siguiente script.

import matplotlib.pyplot as plt
plt.plot([4,8,13,17,20],[54, 67, 98, 78, 45])
plt.show()

Date cuenta que representamos los puntos x e y como listas.

En este caso, el resultado será el siguiente:

La línea de la imagen de arriba es la línea que se genera por defecto, en términos de forma y color. Podemos personalizarla cambiando el color y la forma de la línea utilizando ciertos símbolos (especificadores) que puedes obtener de la documentación de MATLAB. Digamos que quieres pintar una línea verde punteada, con marcadores de diamante. Estos especificadores, en este caso, serán: 'g--d'. En nuestro anterior script, colocamos los especificadores tal que así:

plt.plot([4,8,13,17,20],[54, 67, 98, 78, 45],'g--d')

En cuyo caso, la imagen lucirá tal que así:

Gráfico de dispersión

Un gráfico de dispersión es un gráfico que muestra la relación entre dos conjuntos de datos, como la relación entre edad y peso, por ejemplo. Voy a mostraros cómo podemos dibujar un gráfico de dispersión utilizando matplotlib.

Cogeremos dos conjuntos de datos, x e y, de los cuales queremos encontrar sus relaciones (gráficos de dispersión).

x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88]
y = [54,72,43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54]

Si quieres pintar un gráfico de dispersión con dichos puntos, el código será:

import matplotlib.pyplot as plt
x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88]
y = [54,72,43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54]
plt.scatter(x,y)
plt.show()

La salida de este script será:

Claro está, puede cambiar el color de los marcadores tal y como hemos hecho antes.

Histogramas

Un histograma es un gráfico que muestra la frecuencia de los datos utilizando barras, donde los números son agrupados en rangos. En otras palabras, la frecuencia de cada elemento en la listase mostrará utilizando histogramas. Los números agrupados en los rangos se llaman bins. Vamos a ver un ejemplo para entender esto un poco más.

Digamos que tenemos una lista de datos que queremos mostrar en un histograma como el siguiente:

x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89,45,3,23,2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309]

El script de Python que podemos utilizar para mostrar el histograma para los datos anteriores será:

import matplotlib.pyplot as plt
x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89,45,3,23,2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309]
num_bins = 6
n, bins, patches = plt.hist(x, num_bins, facecolor = 'green')
plt.show()

Si ejecutas el anterior script, obtendrás un resultado parecido a este:

Fuente: Abder-Rahman Ali

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP