13. La librería Matplotlib

13. La librería Matplotlib

Matplotlib es una librería de Python especializada en la creación de gráficos en dos dimensiones. Gráfico con matplotlib

Permite creary personalizar los tipos de gráficos más comunes, entre ellos:

  • Diagramas de barras
  • Histograma
  • Diagramas de sectores
  • Diagramas de caja y bigotes
  • Diagramas de violín
  • Diagramas de dispersión o puntos
  • Diagramas de lineas
  • Diagramas de areas
  • Diagramas de contorno
  • Mapas de color

y combinaciones de todos ellos.

En la siguiente galería de gráficos pueden apreciarse todos los tipos de gráficos que pueden crearse con esta librería.

13.1 Creación de gráficos con matplotlib

Para crear un gráfico con matplotlib es habitual seguir los siguientes pasos:

  1. Importarel módulo pyplot.
  2. Definir la figura que contendrá el gráfico, que es la región (ventana o página) donde se dibujará y los ejes sobre los que se dibujarán los datos. Para ello se utiliza la función subplots().
  3. Dibujar los datos sobre los ejes. Para ello se utilizan distintas funciones dependiendo del tipo de gráfico que se quiera.
  4. Personalizar el gráfico. Para ello existen multitud de funciones que permiten añadir un título, una leyenda, una rejilla, cambiar colores o personalizar los ejes.
  5. Guardar el gráfico. Para ello se utiliza la función savefig().
  6. Mostrar el gráfico. Para ello se utiliza la función show().

13. La librería Matplotlib
Gráfico con matplotlib

13.2 Diagramas de dispersión o puntos
  • scatter(x, y): Dibuja un diagrama de puntos con las coordenadas de la lista x en el eje X y las coordenadas de la lista y en el eje Y.

13. La librería Matplotlib
Gráfico con matplotlib

13.3 Diagramas de líneas
  • plot (x, y): Dibuja un polígono con los vértices dados por las coordenadas de la lista x en el eje X y las coordenadas de la lista y en el eje Y.

13. La librería Matplotlib

13. La librería Matplotlib

13.4 Diagramas de areas
  • fill_between (x, y): Dibuja el area bajo el polígono con los vértices dados por las coorde­nadas de la lista x en el eje X y las coordenadas de la lista y en el eje Y.

13. La librería Matplotlib

Gráfico con matplotlib

13.5 Diagramas de barras verticales
  • bar(x, y): Dibuja un diagrama de barras verticales donde x es una lista con la posición de las barras en el eje X, e y es una lista con la altura de las barras en el eje Y.

13. La librería Matplotlib

Gráfico con matplotlib

13.6 Diagramas de barras horizontales
  • barh(x, y): Dibuja un diagrama de barras horizontales donde x es una lista con la posición de las barras en el eje Y, e y es una lista con la longitud de las barras en el eje X.

13. La librería Matplotlib

Gráfico con matplotlib

13.7 Histogramas
  • hist(x, bins): Dibuja un histograma con las frecuencias resultantes de agrupar los datos de la lista x en las clases definidas por la lista bins.

13. La librería Matplotlib

Gráfico con matplotlib

13.8 Diagramas de sectores

• pie(x): Dibuja un diagrama de sectores con las frecuencias de la lista x.

13. La librería Matplotlib

Gráfico con matplotlib

13.9 Diagramas de caja y bigotes
  • boxplot(x): Dibuja un diagrama de caja y bigotes con los datos de la lista x.

13. La librería Matplotlib

Gráfico con matplotlib

13.10 Diagramas de violín
  • violinplot(x): Dibuja un diagrama de violín con los datos de la lista x.

13. La librería Matplotlib

Gráfico con matplotlib

13.11 Diagramas de contorno
  • contourf(x, y, z): Dibuja un diagrama de contorno con las curvas de nivel de la superficie
    dada por los puntos con las coordenadas de las listas x, y y z en los ejes X, Y y Z respectivamente.

13. La librería Matplotlib
Gráfico con matplotlib

13.12 Mapas de color
  • imshow(x): Dibuja un mapa de color a partir de una matriz (array bidimensiona) x.

13. La librería Matplotlib
Gráfico con matplotlib

• hist2d(x, y): Dibuja un mapa de color que simula un histograma bidimensional, donde los colores de los cuadrados dependen de las frecuencias de las clases de la muestra dada por las listas x e y.

13. La librería Matplotlib

Gráfico con matplotlib

13.13 Cambiar el aspecto de los gráficos

Los gráficos creados con Matplotlib son personalizables y puede cambiarse el aspecto de casi todos sus elementos. Los elementos que suelen modificarse más a menudo son:

  • Colores
  • Marcadores de puntos
  • Estilo de líneas
  • Títulos
  • Ejes
  • Leyenda
  • Rejilla
13.14 Colores

Para cambiarelcolorde los objetos se utiliza el parámetro color = nombre-color, donde nombre -color es una cadena con el nombre del color de entre los colores disponibles.

13. La librería Matplotlib

Gráfico con matplotlib

13.15 Marcadores

Para cambiar la forma de los puntos marcadores se utiliza el parámetro marker = nombre- marcador donde nombre-marcador es una cadena con el nombre del marcador de entre los marcadores disponibles

13. La librería Matplotlib

Gráfico con matplotlib

13.16 Líneas

Para cambiar el estilo de las líneas se utiliza el parámetro linestyle = nombre-estilo donde nombre-estilo es una cadena con el nombre del estilo de entre los estilos disponibles

13. La librería Matplotlib

Gráfico con matplotlib

13.17 Títulos

Para añadir un título principal al gráfico se utiliza el siguiente método:

  • ax.set_title(titulo, loc=alineacion, fontdict=fuente) : Añade un título con el contenido de la cadena titulo a los ejes ax. El parámetro loc indica la alineación del título, que puede ser ‘left’ (izquierda), ‘center’ (centro) o ‘right’ (derecha), y el parámetro fontdict indica mediante un diccionario las características de la fuente (la el tamaño fontisize, el grosor fontweight o el color color).

13. La librería Matplotlib

Gráfico con matplotlib

13.18 Ejes

Para cambiar el aspecto de los ejes se suelen utilizar los siguientes métodos:

  • ax.set_xlabel(titulo) : Añade un título con el contenido de la cadena titulo al eje x de ax. Se puede personalizarla alineación y la fuente con los mismos parámetros que para el título principal.
  • ax.set_ylabel(titulo) : Añade un título con el contenido de la cadena titulo al eje y de ax. Se puede personalizarla alineación y la fuente con los mismos parámetros que para el título principal.
  • ax.set_xlim([limite-inferior, limite-superior]) : Establece los límites que se muestran en el eje x de ax.
  • ax.set_ylim([limite-inferior, limite-superior]) : Establece los límites que se muestran en el eje y de ax.
  • ax.set_xticks (marcas) : Dibuja marcas en el eje x de ax en las posiciones indicadas en la lista marcas.
  • ax.set_yticks (marcas) : Dibuja marcas en el eje y de ax en las posiciones indicadas en la lista marcas.
  • ax.set_xscale(escala) : Establece la escala del eje x de ax, donde el parámetro escala puede ser ‘linear’ (lineal) o ‘log’ (logarítmica).
  • ax. set_yscale(escala) : Establece la escala del eje y de ax, donde el parámetro escala puede ser ‘linear’ (lineal) o ‘log’ (logarítmica).

13. La librería Matplotlib

Gráfico con matplotlib

13.19 Leyenda

Para añadir una leyenda a un gráfico se utiliza el siguiente método:

  • ax.legend(leyendas, loc = posición) : Dibuja un leyenda en los ejes ax con los nom­bres indicados en la lista leyendas. El parámetro loc indica la posición en la que se dibuja
    la leyenda y puede ser ‘upper left’ (arriba izquierda), ‘upper center’ (arriba centro), ‘upper right’ (arriba derecha), ‘center left’ (centro izquierda), ‘center’ (centro), ‘ center right’ (centro derecha), ‘lower left’ (abajo izquierda), ‘lower center’ (aba­jo centro), ‘lower right’ (abajo derecha). Se puede omitir la lista leyendas si se indica la leyenda de cada serie en la función que la dibuja mediante el parámetro label.

13. La librería Matplotlib

Gráfico con matplotlib

13.20

Rejilla

ax.grid(axis=ejes, color=color, linestyle=estilo) : Dibuja una rejilla en los ejes de ax. El parámetro axis indica los ejes sobre los que se dibuja la regilla y puede ser ‘x’ (eje x), ‘y’ (eje y) o ‘ both’ (ambos). Los parámetros color y linestyle establecen el color y el estilo de las líneas de la rejilla, y pueden tomar los mismos valores vistos en los apartados de colores y líneas.

13. La librería Matplotlib

Gráfico con matplotlib

13.21 Múltiples gráficos

Es posible dibujar varios gráficos en distintos ejes en una misma figura organizados en forma de tabla. Para ello, cuando se inicializa la figura y los ejes, hay que pasarle a la función subplots el número de filas y columnas de la tabla que contendrá los gráficos. Con esto los distintos ejes se organizan en un arrayy se puede acceder a cada uno de ellos a través de sus índices. Si se quiere que los distintos ejes compartan los mismos límites para los ejes se pueden pasar los parámetros sharex = True para el ejexo sharey = True para el eje y.

13. La librería Matplotlib
Gráfico con matplotlib

13.22 Integración con Pandas

Matplotlib se integra a la perfección con la librería Pandas, permitiendo dibujar gráficos a partir de los datos de las series y DataFrames de Pandas.

  • df.plot(kind=tipo, x=columnax, y=columnay, ax=ejes) : Dibuja un diagrama del ti­po indicado por el parámetro kind en los ejes indicados en el parámetro ax, representando en el eje x la columna del parámetro x y en el eje y la columna del parámetro y. El parámetro kind puede tomar como argumentos ‘line’ (lineas), ‘scatter’ (puntos), ‘bar’ (barras ver­ticales), ‘barh’ (barrashorizontales), ‘hist’ (histograma), ‘box’ (cajas), ‘density’ (densi­dad), ‘area’ (area)o ‘pie’ (sectores). Es posible pasar otros parámetros para indicar el color, el marcador o el estilo de línea como se vió en los apartados anteriores.

13. La librería Matplotlib

Gráfico con matplotlib

Si no se indican los parámetros x e y se representa el índice de las filas en el eje x y una serie porcada columna del Dataframe. Las columnas no numéricas se ignoran.

13. La librería Matplotlib

13. La librería Matplotlib

Gráfico con matplotlib

Publicaciones Similares