Documentos de Académico
Documentos de Profesional
Documentos de Cultura
usando matplotlib
Python es un lenguaje de programación que cuenta con múltiples librerías o módulos para
realizar distintos procesos.
En Python contamos principalmente con la librería matplotlib, con la cual podemos realizar
múltiples tipos de gráficas de una manera sencilla y con pocas lineas de código.
Si no la tienes instalada, puedes hacerlo con el siguiente comando ‘pip install matplotlib’ o
‘pip3 install matplotlib’
Para empezar a realizar los gráficos, necesitamos importar las librerías necesarias:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
1 import matplotlib
2 import matplotlib.pyplot as plt
3 import numpy as np
Estas librerías las usaremos en todos los ejemplos, así que recomiendo tenerlas siempre
presentes.
Para crear gráficas de barras en matplotlib, hacemos uso de la función ‘bar’, con la cual
señalamos que la gráfica final debe ser una gráfica de barras.
Atención: En estos casos tanto la lista ‘países’ y ‘ventas’ deben contener la misma cantidad
de valores, en caso contrario ocurrirá un error
#Definimos una lista con paises
paises = ['Estados Unidos', 'Esp
#Definimos una lista con ventas
ventas = [25, 32, 34, 20, 25]
Recuperamos un par de valores de la función ‘subplots’, esto nos ayudara a añadir diversas
características a la gráfica.
Podemos añadir ‘etiquetas’ a la gráfica, esto ayuda a entender mejor los valores incluidos,
esto lo hacemos en base a las funciones ‘set_xlabel’ o ‘set_ylabel’ para añadir etiquetas en
los ejes X o Y, y ‘set_title’ para añadir un titulo al gráfico.
fig, ax = plt.subplots()
#Colocamos una etiqueta en el e
ax.set_ylabel('Ventas')
#Colocamos una etiqueta en el e
1 fig, ax = plt.subplots()
2 #Colocamos una etiqueta en el eje Y
3 ax.set_ylabel('Ventas')
4 #Colocamos una etiqueta en el eje X
5 ax.set_title('Cantidad de Ventas por Pais')
Finalmente, construimos la gráfica usando los valores de ‘paises’ y ‘ventas’ como el eje X
y Y, esto se realiza con el método ‘bar’ que recibe como parámetros los valores antes
mencionados. Mostramos la gráfica con el método ‘show’. El código completo queda a
continuación y la gráfica resultante:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
1 import matplotlib
2 import matplotlib.pyplot as plt
3 import numpy as np
4
5 #Definimos una lista con paises como string
6 paises = ['Estados Unidos', 'España', 'Mexico', 'Rusia', 'Japon']
7 #Definimos una lista con ventas como entero
8 ventas = [25, 32, 34, 20, 25]
9
10 fig, ax = plt.subplots()
11 #Colocamos una etiqueta en el eje Y
12 ax.set_ylabel('Ventas')
13 #Colocamos una etiqueta en el eje X
14 ax.set_title('Cantidad de Ventas por Pais')
15 #Creamos la grafica de barras utilizando 'paises' como eje X y 'ventas' como eje y.
16 plt.bar(paises, ventas)
17 plt.savefig('barras_simple.png')
18 #Finalmente mostramos la grafica con el metodo show()
19 plt.show()
Teniendo lo básico, pasamos a crear la gráfica, en este caso usamos el método ‘barh’ que
permite crear la gráfica de barras en posición horizontal. Pasamos los parámetros donde Y
es igual a las posiciones de menor a mayor de cada lenguaje, y X es la cantidad de usuarios,
el parámetro ‘align’ permite alinear los valores al centro
Finalmente podemos añadir etiquetas para representar los valores. Y posterior a esto
mostrar la gráfica.
Ademas de añadir las etiquetas de siempre, añadiremos una ‘leyenda’ esta es un pequeño
recuadro que permite entender los elementos en la gráfica de una manera mas simple.
Añadimos una función que nos permite añadir etiquetas de manera individual a cada barra:
def autolabel(rects):
"""Funcion para agregar una
for rect in rects:
height = rect.get_height()
1 def autolabel(rects):
2 """Funcion para agregar una etiqueta con el valor en cada barra"""
3 for rect in rects:
4 height = rect.get_height()
5 ax.annotate('{}'.format(height),
6 xy=(rect.get_x() + rect.get_width() / 2, height),
7 xytext=(0, 3), # 3 points vertical offset
8 textcoords="offset points",
9 ha='center', va='bottom')
Graficamos:
Generamos los valores intermedios ente 0 y 2, entre mas valores existan mas ‘suave’ se
vera la recta.
x = np.linspace(0, 2, 100)
1 x = np.linspace(0, 2, 100)
Creamos la gráfica pasando los valores al método ‘plot’ con el cual realizamos las gráficas
lineales. En este caso los valores de Y, se modifican para representar valores distintos.
Finalmente etiquetamos y graficamos:
x = np.linspace(0, 2, 100)
#Generamos una grafica lineal p
plt.plot(x, x, label='linear')
#Generamos otra grafica lineal
1 x = np.linspace(0, 2, 100)
2 #Generamos una grafica lineal para una recta en X
3 plt.plot(x, x, label='linear')
4 #Generamos otra grafica lineal para una X cuadratica
5 plt.plot(x, x**2, label='quadratic')
6 #Generamos una grafica lineas para una X Cubica
7 plt.plot(x, x**3, label='cubic')
8 #Agregamos las etiquetas y añadimos una leyenda.
9 plt.xlabel('Eje X')
10 plt.ylabel('Eje Y')
11 plt.title("Simple Plot")
12 plt.legend()
13 plt.savefig('grafica_lineal.png')
14 plt.show()
Grafica lineal
medios_transporte = 'Vehiculos
#Declaramos el tamaño de cada
sizes = [45, 30, 15, 10]
#En este punto señalamos que
Añadimos las etiquetas correspondientes y leyenda. Hacemos uso del método ‘pie’ con el
cual generamos las gráficas tipo pastel, pasamos los parámetros de los conjuntos de datos y
graficamos.
medios_transporte = 'Vehiculos
#Declaramos el tamaño de cada
sizes = [45, 30, 15, 10]
#En este punto señalamos que
Grafica de Dispersión
Otro de los múltiples gráficos que podemos realizar con matplotlib son los gráficos de
dispersión, que ayudan a entender el despliegue de varios conjuntos de datos y la relación
entre ellos.
#Grafico de dispersion
#Definimos un area de tipo elips
rx, ry = 3., 1.
area = rx * ry * np.pi
1 #Grafico de dispersion
2 #Definimos un area de tipo elipse, para dibujar.
3 rx, ry = 3., 1.
4 area = rx * ry * np.pi
5 theta = np.arange(0, 2 * np.pi + 0.01, 0.1)
6 verts = np.column_stack([rx / area * np.cos(theta), ry / area * np.sin(theta)])
7
8 x, y, s, c = np.random.rand(4, 30)
9 s *= 10**2.
10
11 fig, ax = plt.subplots()
12 ax.scatter(x, y, s, c, marker=verts)
13 plt.savefig('grafica_dispersion.png')
14 plt.show()
Grafica de dispersion
Podemos realizar múltiples gráficos para representar datos de una manera sencilla y con
pocas lineas de código. Ademas también podemos realizar gráficas en 3D pero esto ya sera
en otro tutorial.