4.1. Librería Matplotlib¶
Nota
Propósito: es una librería de Python especializada en la creación de gráficos en dos dimensiones.
Permite crear y 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.
Figura 4.1, Logotipo de librería Matplotlib¶
4.1.1. Instalación¶
Para instalar el paquete matplotlib ejecute el siguiente comando, el cual a continuación se presentan el correspondiente comando de tu sistema operativo:
pip3 install matplotlib
pip install matplotlib
Puede probar si la instalación se realizo correctamente, ejecutando el siguiente comando correspondiente a tu sistema operativo:
python3 -c "import matplotlib ; print(matplotlib.__version__)"
python -c "import matplotlib ; print(matplotlib.__version__)"
Si muestra el numero de la versión instalada de matplotlib, tiene
correctamente instalada la paquete. Con esto, ya tiene todo listo para continuar.
4.1.2. Creación de gráficos¶
Para crear un gráfico con matplotlib es habitual seguir los siguientes pasos:
Importar el módulo
pyplot.Definir la figura que contendrá el gráfico, que es la region (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().Dibujar los datos sobre los ejes. Para ello se utilizan distintas funciones dependiendo del tipo de gráfico que se quiera.
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.
Guardar el gráfico. Para ello se utiliza la función
savefig().Mostrar el gráfico. Para ello se utiliza la función
show().
1 2 3 4 5 6 7 8 9 10 | |
Figura 4.2, Creación de gráficos¶
4.1.3. Diagramas de dispersión o puntos¶
scatter(x, y): Dibuja un diagrama de puntos con las coordenadas de la listaxen el eje X y las coordenadas de la listayen el eje Y.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.scatter.
1 2 3 4 | |
Figura 4.3, Diagramas de dispersión o puntos¶
4.1.4. Diagramas de líneas¶
plot(x, y): Dibuja un polígono con los vértices dados por las coordenadas de la listaxen el eje X y las coordenadas de la listayen el eje Y.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.plot.
1 2 3 4 | |
Figura 4.4, Diagramas de líneas¶
4.1.5. Diagramas de areas¶
fill_between(x, y): Dibuja el area bajo el polígono con los vértices dados por las coordenadas de la listaxen el eje X y las coordenadas de la listayen el eje Y.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.fill_between.
1 2 3 4 | |
Figura 4.5, Diagramas de areas¶
4.1.6. Diagramas de barras verticales¶
bar(x, y): Dibuja un diagrama de barras verticales dondexes una lista con la posición de las barras en el eje X, eyes una lista con la altura de las barras en el eje Y.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.bar.
1 2 3 4 | |
Figura 4.6, Diagramas de barras verticales¶
4.1.7. Diagramas de barras horizontales¶
barh(x, y): Dibuja un diagrama de barras horizontales dondexes una lista con la posición de las barras en el eje Y, eyes una lista con la longitud de las barras en el eje X.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.barh.
1 2 3 4 | |
Figura 4.7, Diagramas de barras horizontales¶
4.1.8. Histogramas¶
hist(x, bins): Dibuja un histograma con las frecuencias resultantes de agrupar los datos de la listaxen las clases definidas por la listabins.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.hist.
1 2 3 4 5 6 | |
Figura 4.8, Histogramas¶
4.1.9. Diagramas de sectores¶
pie(x): Dibuja un diagrama de sectores con las frecuencias de la listax.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.pie.
1 2 3 4 | |
Figura 4.9, Diagramas de sectores¶
4.1.10. Diagramas de caja y bigotes¶
boxplot(x): Dibuja un diagrama de caja y bigotes con los datos de la listax.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.boxplot.
1 2 3 4 | |
Figura 4.10, Diagramas de caja y bigotes¶
4.1.11. Diagramas de violín¶
violinplot(x): Dibuja un diagrama de violín con los datos de la listax.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.violinplot.
1 2 3 4 | |
Figura 4.11, Diagramas de violín¶
4.1.12. 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 listasx,yyzen los ejes X, Y y Z respectivamente.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.contourf.
1 2 3 4 5 6 7 8 | |
Figura 4.12, Diagramas de contorno¶
4.1.13. Mapas de color¶
imshow(x): Dibuja un mapa de color a partir de una matriz (array bidimensiona)x.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.imshow.
1 2 3 4 5 | |
Figura 4.13, Mapas de color¶
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 listasxey.Truco
Para más información consulte la documentación oficial de matplotlib.pyplot.hist2d.
1 2 3 4 5 | |
Figura 4.14, Mapas de color 2D¶
4.1.14. 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
4.1.15. Colores¶
Para cambiar el color de 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.
1 2 3 4 5 6 7 | |
Figura 4.15, Colores¶
4.1.16. 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
1 2 3 4 5 6 7 | |
Figura 4.16, Marcadores¶
4.1.17. 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
1 2 3 4 5 6 7 | |
Figura 4.17, Líneas¶
4.1.18. 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
tituloa los ejesax. El parámetrolocindica la alineación del título, que puede ser'left'(izquierda),'center'(centro) o'right'(derecha), y el parámetrofontdictindica mediante un diccionario las características de la fuente (la el tamañofontisize, el grosorfontweighto el colorcolor).
1 2 3 4 5 6 7 8 | |
Figura 4.18, Títulos¶
4.1.19. 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 cadenatituloal eje x deax. Se puede personalizar la 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 cadenatituloal eje y deax. Se puede personalizar la 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 deax.ax.set_ylim([limite-inferior, limite-superior]): Establece los límites que se muestran en el eje y deax.ax.set_xticks(marcas): Dibuja marcas en el eje x deaxen las posiciones indicadas en la listamarcas.ax.set_yticks(marcas): Dibuja marcas en el eje y deaxen las posiciones indicadas en la listamarcas.ax.set_xscale(escala): Establece la escala del eje x deax, donde el parámetroescalapuede ser'linear'(lineal) o'log'(logarítmica).ax.set_yscale(escala): Establece la escala del eje y deax, donde el parámetroescalapuede ser'linear'(lineal) o'log'(logarítmica).
1 2 3 4 5 6 7 8 9 10 11 | |
Figura 4.19, Ejes¶
4.1.20. 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 ejesaxcon los nombres indicados en la listaleyendas. El parámetrolocindica 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'(abajo centro),'lower right'(abajo derecha). Se puede omitir la listaleyendassi se indica la leyenda de cada serie en la función que la dibuja mediante el parámetrolabel.
1 2 3 4 5 6 7 8 | |
Figura 4.20, Leyenda¶
4.1.21. 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.
1 2 3 4 5 6 7 8 | |
Figura 4.21, Rejilla¶
4.1.22. 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 array y 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
eje x o sharey = True para el eje y.
1 2 3 4 5 6 7 8 9 | |
Figura 4.22, Múltiples gráficos¶
4.1.23. 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 tipo indicado por el parámetrokinden los ejes indicados en el parámetroax, representando en el eje x la columna del parámetroxy en el eje y la columna del parámetroy. El parámetrokindpuede tomar como argumentos'line'(lineas),'scatter'(puntos),'bar'(barras verticales),'barh'(barras horizontales),'hist'(histograma),'box'(cajas),'density'(densidad),'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.
1 2 3 4 5 6 7 8 9 | |
Figura 4.23, Integración con Pandas¶
Si no se indican los parámetros x e y se representa el índice
de las filas en el eje x y una serie por cada columna del Dataframe.
Las columnas no numéricas se ignoran.
1 2 3 4 5 6 7 8 9 | |
Figura 4.24, Integración con Pandas¶
Por hacer
TODO Terminar de escribir esta sección.
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. UTM - Madrid, España.
La hora aquí es actualmente 7:35 PM UTM.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.