Crear gráficos con python y matplotlib

¡Hola! Hoy volvemos con otro artículo de python. Esta vez sobre como crear gráficos con python y matplotlib.

Matplotlib es una librería que nos ofrece muchas posibilidades de creación graficos desde python a partir de arrays de datos. La web oficial de esta librería es: https://matplotlib.org/
Agradecemos que compartas este artículo en tus redes sociales y/o comentes.

¡Empezamos!

Crear gráficos con matplotlib y python

Instalación de librerías

Para instalar matplotlib solo tenemos que ejecutar pip install matplotlib como se puede ver en esta pantalla:

installing matplot

Para poder trabajar con los ejemplos que mostraremos a continuación también debemos instalar scipy con el comando pip install scipy:

instalar scipy

Y también debemos instalar python-tk en el caso de debian/ubuntu y similares se hace con apt install python-tk:

instalar python tk

Gráficos básicos de lineas

En este primer ejemplo vamos a hacer gráficos simples definiendo únicamente el eje “Y” con los datos que queremos dibujar:

ger@ger:~$ python
Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from pylab import *
>>> plot([1,2,3,2,1,3,2,1,2,3,4,5,4,30,10,1])
[]
>>> xlabel('mi grafico')
Text(0.5,0,'mi grafico')
>>> title('titulo de mi grafico')
Text(0.5,1,'titulo de mi grafico')
>>> draw()
>>> savefig("mi-grafico1",dpi=300)
>>> close()
>>> 

Con este código anterior se crea una graficas en python en base a los datos definidos en la segunda linea (la que empieza por plot). Para enseñaros el funcionamiento hemos creado un fichero python en /tmp/grafico.py con este código y lo hemos ejecutado:

Aquí se puede ver que no existe el fichero hasta su ejecución:

ver grafico creado

Después de crear el gráfico al abrirlo, podemos ver esto:

gráfico

Cambiando parte del código se puede hacer que se muestre una ventana GUI con el gráfico que hemos generado, esto se hace con la sentencia draw() :

grafico1

Si añadimos antes de draw() la sentencia grid(True) se mostrará la cuadricula de fondo. Para mostrar la leyenda se debe añadir legend( (‘Etiqueta1’,), loc = ‘upper left’) donde “Etiqueta 1” es el texto a mostrar:

grafico1 con grid

Si queremos complicar un poco mas el gráfico de lineas simples podemos añadir linea de tiempo y una segunda linea de datos:

grafico2 y codigo

En el caso anterior hemos podido definir el color y el texto de la etiqueta de cada linea. Esto lo hacemos modificando los parámetros “color” y “label”. En este caso como hemos utilizado legend(loc = ‘upper left’) la leyenda adquiere los valores del parámetro label de la sentencia plot(). En este caso se podía haber utilizado también legend( (‘Vlores 1′,’Valores2’), loc = ‘upper left’) pero la sentencia utilizada es más cómoda ya que nos evitamos pasar parámetros y estos se adquieren de forma automática.

Gráficos de area

Es tan simple como añadir la sentencia fill_between(time,valores2,color=”red”) (donde también definimos el color del relleno del área ) por cada linea de un gráfico simple:

grafico area

Y este es el resultado del gráfico de área:

area

 

Gráficos en 3D

Con el siguiente código generamos un gráfico en 3D con los datos facilitados en X e Y, el eje X se facilita en el primer parámetro de np.arange:

from pylab import *
from mpl_toolkits.mplot3d import Axes3D

fig = figure()
ax = Axes3D(fig)
X = np.arange(-8, 30, 0.50)
Y = np.arange(-8, 20, 0.50)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1)
show()

El resultado es:

Si queremos cambiar el mapa de colores podemos modificar ax.plot_surface(X, Y, Z, rstride=1, cstride=1) por ejemplo:

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=’hot‘)  esta sentencia establecerá unos colores calidos y si queremos unos colores frios podemos utilizar “cool”.

Gráficos tipo “Pie” o “Pastel”

En este último apartado enseñamos como generar un gráfico de pastel

from pylab import *
y = [1,2,3,2,1,3,2,1,2,3,4,5,4,30,10,1]
pie(y)
xlabel('mi grafico')
title('titulo de mi grafico')
legend( ('Etiqueta1',), loc = 'upper left')
draw()
#savefig("mi-grafico1",dpi=300)
#close()
grid(True)
show()

Si sustituimos pie(y) por plot(y) generamos un gráfico de lineas. Las lineas comentadas si se descomentan, guardarán el gráfico directamente aparte de mostrarlo con show() . El resultado de este código es:

pie

Y con esto ha sido todo. Puedes encontrar mas información sobre como hacer otro tipo de gráficos como por ejemplo los de barras en la documentación de la web oficial https://matplotlib.org/

Si te ha gustado el artículo puede comentar o compartirlo en tus redes sociales.

¡Nos vemos pronto!

Deja una respuesta