CaC Big Data - Material Imprimible - Librerías - Unidad 3 - Matplotlib

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

Visualización de datos: Librería Matplotlib

Matplotlib es una biblioteca para crear gráficas, tablas y figuras. También proporciona
funciones para personalizar estas gráficas, modificando lo colores, etiquetas, etc. Es el
complemento ideal para trabajar con Pandas.
Antes de utilizar matplotlib, debemos instalarlo con pip install matplotlib en la
línea de comandos (si estamos trabajando en un entorno local, y siempre creando un
entorno virtual para nuestro proyecto), y luego importarla en nuestro código:
import matplotlib.pyplot as plt
pyplot es el módulo que dibuja las gráficas.
plt es el alias habitual para importar este módulo.
Veamos un ejemplo (debemos recordar importar pandas):
s=pd.Series([19,43,11,33,82,67,5])
s.plot(kind=’bar’)
plt.savefig(‘plot.png’)
La función plot() crea la gráfica a partir de una serie o dataframe de pandas.
Como no lo especificamos de otra forma, los datos se muestran en el eje y, mientras que
en el eje x se muestran los índices de los datos.
plt.savefig(‘plot.png’) graba un archivo con la imagen.

Gráfica de líneas
Matplotlib soporta diferentes tipos de gráficas. La más básica es la gráfica de líneas.
Tomemos como ejemplo un dataframe extraído del archivo ‘balance_2021.csv’ y
grafiquemos las ventas del año. Podrás encontrar el archivo en el material de la
plataforma.
df = pd.read_csv('balance_2021.csv')
df['ventas'].plot()
plt.show()

Si no deseamos grabar la gráfica en un archivo, y sólo verlo, podemos usar la función


show().
También podemos graficar múltiples líneas en la misma gráfica. Probemos mostrar los
ventas y salarios al mismo tiempo:
df['ventas','salarios'].plot()

Matplotlib agrega título y color automáticamente a las líneas que representan los datos de cada columna.

Gráfica de barras
La función plot() admite argumentos en los que podemos especificar el tipo de gráfico que
queremos obtener.
Para crear una gráfico de barras, utilizamos el atributo kind con el valor ‘bar’.
Vamos a obtener una gráfica con los impuestos pagados en 2021 a partir del csv del
ejemplo anterior.
df['impuestos'].plot(kind='bar')
Podemos combinar matplotlib con las funciones de pandas. Veamos los salarios por
cuatrimestre:
(df.groupby('cuatrimestre')
['salarios'].sum()).plot(kind='bar')

Primero agrupamos los salarios por cuatrimestre, y calculamos la suma en cada uno de
los períodos.
También podemos dibujar múltiples columnas. Si utilizamos la propiedad stacked,
obtendremos las barras apiladas.
df = df.groupby('cuatrimestre')[['salarios','costos','servicios']].sum()
df.plot(kind='bar', stacked=True)
Si modificamos el atributo kind a ‘barh’, obtenemos barras horizontales.
Gráfica de caja y bigotes
Nos permite visualizar la distribución de los valores en una columna. Presenta un
resumen estadístico de nuestro dataframe. Específicamente nos grafica el resultado de la
función describe() de pandas.
Por ejemplo, la gráfica de los costos en nuestro dataframe de balance.
print(df['gastos_varios'].describe())
df['gastos_varios'].plot(kind='box')

count 12.000000
mean 1.703333
std 0.875093
min 0.140000
25% 1.502500
50% 1.825000
75% 2.010000
max 3.280000
Name: gastos_varios, dtype: float64
• La línea verde representa la mediana.
• La caja representa el rango intercuartil.
• Las líneas verticales que salen de la caja, abarcan los datos mínimos a máximo,
excluyendo los outliers.
• Los círculos muestran los outliers o datos anómalos.

Histograma
Así como los diagramas de caja y bigotes, los histogramas también muestran la
distribución de los datos.
Visualmente son similares a los gráficos de barras, pero al representar frecuencia en un
grupo o rango de datos, no hay espacios entre las barras.
Obtengamos los datos de los gastos varios, divididos en 4 columnas. Especificamos el
atributo kind como ‘hist’ y el número de columnas con el atributo bins:
df['gastos_varios'].plot(kind='hist',bins=4 )
Gráfica de área
El atributo kind=’area’ crea una gráfica de área.
df[['costos','impuestos']].plot(kind='area')

Las gráficas de área se muestran apiladas por defecto, por lo que debemos explicitar si no
lo deseamos de esa manera con el atributo stacked = False.
df[['costos','impuestos']].plot(kind='area', stacked = False)
Diagrama de dispersión
El diagrama de dispersión nos muestra la relación entre dos variables.
Por ejemplo, podemos ver cómo están relacionados los impuestos con las ventas y con
los gastos varios, creando dos gráficas diferentes con kind=’scatter’ y especificando
cómo queremos ubicar los ejes:
df[['ventas','impuestos']].plot(kind='scatter', x='ventas', y='impuestos')
df[['gastos_varios','impuestos']].plot(kind='scatter', x='gastos_varios',
y='impuestos')
Ambas gráficas muestran 12 puntos, 1 por cada dato (mes).

Pie chart
Creamos gráficos de torta con el atributo kind = ‘pie’.
Veamos el promedio de gastos varios por cuatrimestre:
df.groupby('cuatrimestre')['gastos_varios'].mean().plot(kind='pie')
Generalmente utilizamos pie charts para mostrar porcentajes o proporcionalidad entre los
datos.
Se recomienda usarlos cuando tenemos hasta un máximo de 6 categorías.

Formato
Matplotlib facilita una serie de argumentos para personalizar nuestras gráficas.
• title=cadena_de_texto le pone un título a la gráfica
• legend=True|False: especifica si deseamos mostrar el recuadro con la
especificación de colores para las líneas.
• xlabel(valor) / ylabel(valor) especifican las etiquetas para los ejes
correspondientes.
• xticks(posiciones,valores) permite cambiar los valores sobre el eje x. Si el texto a
mostrar es muy ancho, podemos aplicarle una rotación con el argumento
rotation=x (en grados). Por defecto se utilizan los índices de los datos de ese eje.
Veamos un primer ejemplo con estas personalizaciones:
df[['ventas','impuestos']].plot(kind='line',legend=True,
title='Ventas e impuestos 2021')
posiciones = np.arange(0,12)
plt.xticks(posiciones, df['mes'], rotation=40)
plt.xlabel('Mes')
plt.ylabel('Importe en millones de pesos')

También podemos cambiar los colores con el atributo color. Acepta valores tipo string (el
nombre del color), un carácter (para los colores básicos), hexadecimal, hexadecimal
abreviado, RGB, RGBA, etc.
Por ejemplo, agregando color=['hotpink','turquoise'] dentro de los atributos
de plot(), obtenemos:
Todos estos atributos aplican a la mayoría de los tipos de gráficas que hemos visto.
En la siguiente tabla obtenida de la documentación de matplotlib pueden ver distintos
colores y tipos de línea:
Enlaces externos
Documentación oficial Matplotlib: https://matplotlib.org/

Todos los derechos son reservados por el Programa Codo a Codo perteneciente a la
Dirección Agencia de Habilidades para el Futuro del Ministerio de Educación del Gobierno
de la Ciudad Autónoma de Buenos Aires. Se encuentra prohibida su venta o
comercialización.

También podría gustarte