Tabla de contenido
¡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!
Instalación de librerías
Para instalar matplotlib solo tenemos que ejecutar pip install matplotlib como se puede ver en esta pantalla:
Para poder trabajar con los ejemplos que mostraremos a continuación también debemos instalar scipy con el comando pip install scipy:
Y también debemos instalar python-tk en el caso de debian/ubuntu y similares se hace con apt install 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:
Después de crear el gráfico al abrirlo, podemos ver esto:
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() :
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:
Si queremos complicar un poco mas el gráfico de lineas simples podemos añadir linea de tiempo y una segunda linea de datos:
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:
Y este es el resultado del gráfico de área:
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:
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!