Matplotlib es una biblioteca de Python que se usa a menudo con Jupyter Notebook. El módulo de matplotlib que se utiliza se llama pyplot. En este tutorial, aprenderemos un poco sobre matplotlib y cómo usarlo en Jupyter Notebook. Matplotlib.pyplot proporciona una forma de trazado similar a MATLAB. Esto significa que pyplot tiene muchas funciones para realizar cambios en una figura. Matplotlib en combinación con Jupyter Notebook es una forma popular de visualizar datos usando Python para todo tipo de aplicaciones en ciencia, tecnología y educación.


Instalar Matplotlib

Primero asegúrese de tener instalado el cuaderno Jupyter , luego podemos agregar Matplotlib a nuestro entorno virtual. Para hacerlo, navegue hasta el símbolo del sistema y escriba pip install matplotlib .

pip instalar matplotlib

Ahora inicie su cuaderno Jupyter simplemente escribiendo jupyter notebook en el símbolo del sistema.

plt.plot (x, y)

El gráfico de líneas es una especie de "hola mundo" de matplotlib. El siguiente código muestra cómo comenzar con un gráfico de líneas muy simple usando los ejes xey.

matplotlib pyplot plt

El código anterior primero importa matplotlib usando import matplotlib.pyplot como plt . Esta es una convención común para importar y alias para plt . Ahora podemos hacer uso de la función .plot ()Esta función tiene varios parámetros posibles, pero la clave que debe saber es que debe pasarle un valor xy un y . Estas son secuencias de datos. En este ejemplo, simplemente pasamos dos listas de Python. La primera lista es x y la segunda lista es y. Estas secuencias siempre deben tener la misma longitud. En este punto, estamos listos para mostrar el gráfico y esto se hace usando plt.show ().


Leyendas, títulos y etiquetas

Ahora podemos hablar de tres aspectos más importantes de matplotlib. Estos son leyendas, títulos y etiquetas. Es una buena idea tener un título para su gráfico, etiquetas para los ejes xey y una leyenda que explique qué son los datos. Para comenzar, el siguiente código agrega una etiqueta X e Y, así como un título al gráfico.

ejemplo de título y etiqueta de matplotlib

Una leyenda es útil cuando se traza más de una secuencia de datos. Si tiene más de una línea en la gráfica, ¿cómo sabe qué línea representa qué? Para esto usas una leyenda. Al agregar una leyenda, también es importante tener en cuenta que debe agregar un tercer argumento a la función plot (). Este es un argumento de palabra clave de label, para que la leyenda se muestre correctamente. Aquí hay un ejemplo.

ejemplo de leyenda de matplotlib

Gráficos de barras e histogramas

La visualización de un gráfico de barras con matplotlib se realiza con la función .bar ().

ejemplo de gráfico de barras matplotlib

Podemos trazar más de un conjunto de datos usando el gráfico de barras, tal como hicimos con los gráficos de líneas. En el siguiente código, agregamos un segundo conjunto de datos usando las variables x2 e y2. Observe también que ahora usamos números impares para la primera variable x y números pares para la variable x2. Necesitamos hacer esto para que las barras no se superpongan entre sí. Queremos que estén uno al lado del otro por el bien de la comparación, y este paso lo logra.

gráfico de barras múltiples matplotlib

Además, tenga en cuenta que puede especificar el color de las barras dentro de la función .bar () así.

establecer color de barra matplotlib

Histograma

El histograma se puede utilizar para mostrar una distribución de datos. Para mostrar un histograma, podemos usar la función matplotlib .hist ()Un histograma tiene un concepto de bins . Un contenedor es como una ranura en el gráfico que contiene un rango de datos. En nuestro ejemplo, los contenedores son 50000, 60000, 70000, 80000, 90000 y 100000. Ahora tenemos una lista de salarios. Suponga que se realizó una encuesta para verificar cuáles son algunos salarios comunes en tecnología de la información. Cualquier salario entre 50000 y 59999 debe ir al contenedor de 50000. Cualquiera que esté entre 60000 y 69999 debe ir en 60000, y así sucesivamente.

contenedores de histograma matplotlib

Gráfico de dispersión

Los diagramas de dispersión se pueden utilizar para trazar puntos de datos en un eje horizontal y vertical para mostrar cuánto una variable se ve afectada por otra. Cada fila de la tabla de datos está representada por un punto cuya posición depende de sus valores en las columnas establecidas en los ejes X e Y. En matplotlib, la función .scatter () se usa para representar un diagrama de dispersión.

gráfico de dispersión de matplotlib

El estilo de los puntos de la trama se puede personalizar. Por defecto, es solo un simple punto como vemos. Además, se puede ajustar el tamaño del marcador. Por ejemplo, es posible que desee agrandar los puntos de la trama. A continuación se muestra un ejemplo del uso de una forma de diamante y un tamaño mayor para el diagrama de dispersión.

diagrama de dispersión del cuaderno jupyter

Gráficos de pila

Los diagramas de pila se utilizan para mostrar dos o más conjuntos de datos que se mostrarán en el mismo conjunto de ejes, o si desea desglosar un conjunto de datos por sus componentes. Por lo general, se utilizan diferentes colores para distinguir los componentes. En nuestro ejemplo a continuación, usamos una gráfica de pila en el transcurso de cinco días. Algunos se refieren a un diagrama de pila como un gráfico circular a lo largo del tiempo. Entonces tenemos 5 días, y cada día dejamos una cierta cantidad de tiempo para varias tareas. Los dividimos en correos electrónicos, revisiones de códigos, informes de errores y tiempo de Internet. Entonces, cada valor en cada lista representa cuántas horas dedicadas a esa tarea durante el día determinado. Una vez que tengamos los días, podemos usar la función .stackplot () para representarlo en la página.

ejemplo de stackplot de matplotlib

Gráficos circulares

De todos los tipos de gráficos, el gráfico circular puede ser el más común. Un gráfico circular se parece a un Pie real, de ahí el nombre. Cada porción del pastel es un punto de datos. Los gráficos circulares se utilizan a menudo para mostrar datos basados ​​en porcentajes. Los gráficos circulares son excelentes cuando hay un número relativamente limitado de puntos de datos para examinar. Si tiene demasiados, el gráfico circular se corta tantas veces que la visualización no ofrece ningún beneficio real. A continuación se muestra un rehacer del ejemplo de diagrama de pila en forma de gráfico circular. Observe que cuando usamos la función .pie (), pasamos la suma de todas las horas para cada actividad.

gráfico circular matplotlib

¡Muy genial! Con solo mirar el gráfico circular, podemos ver cómo se dividió nuestro tiempo durante la semana. ¡Parece que pasamos demasiado tiempo en Internet!

Ajuste del ángulo de inicio y los porcentajes

Cuando renderiza el gráfico circular, matplotlib simplemente elige cómo orientará el gráfico en la página. Esto se puede especificar configurando los parámetros startangleautopct.

gráfico circular de porcentaje de matplotlib

El gráfico circular ahora comienza en 90 grados, que es vertical. Además, es fácil ver qué porcentaje de tiempo se dedicó a cada tarea. Los correos electrónicos se utilizaron hasta el 22,2% del tiempo, las revisiones de código el 25%, los informes de errores el 8,3% e Internet el 44,4%.

Explotando una rebanada

Es posible que haya visto gráficos circulares en los que un sector en particular se elimina ligeramente del gráfico circular como un acento. Esto brinda una sugerencia visual para ingresar estos datos. Podemos hacer esto en matplotlib usando el parámetro de explosión. Explotemos los informes de errores del pastel.

gráfico circular matplotlib rebanada de explosión

Carga de datos de archivos

Muchas veces, matplotlib se usa para mostrar información en forma de gráfico de archivos en el disco, o incluso datos de Internet. Primero veamos la lectura de datos de un archivo, para usar en matplotlib. Considere este archivo de ejemplo en el disco llamado fileondisk.txt.

archivo de Python en el disco

Lo que tenemos son 9 filas de datos con 2 datos separados por una coma en cada fila. El objetivo es usar Python para leer el archivo y luego trazar esos datos en matplotlib.

matplotlib trazar datos del archivo

¡Se ve muy bien! La única diferencia en este ejemplo es que separamos los datos de la coma del archivo. Los valores a la izquierda de la coma se asignaron a la lista x, y los valores a la derecha de la coma se asignaron a la lista y. A partir de ahí, sabemos cómo usar la función .plot () para mostrar simplemente esos datos en nuestro gráfico genial.

Usando Numpy

En lugar de usar el lector CSV, podríamos lograr lo mismo usando la popular biblioteca de Python numpy. En lugar de tener que abrir manualmente el archivo y configurar manualmente un ciclo para agregar a cada lista, podemos usar numpy para descomprimir la lista en cada variable en una línea. El gráfico resultante es el mismo.

Trazar datos de Internet en matplotlib

Una fuente popular de datos para trazar a través de Internet son las cotizaciones de acciones. Podemos descargar algunos datos de Yahoo Finance y trazar el resultado usando matplotlib. El siguiente código hace uso de la biblioteca urllib para leer datos de la API de Yahoo Finance, y luego se usa numpy para descomprimir los datos en las variables que necesitamos. Para trazar el resultado, usamos la función .plot_date ().

api de finanzas de yahoo matplotlib

Estilos de Matplotlib

Otra cosa a tener en cuenta es personalizar los estilos de gráficos en matplotlib. Matplotlib se envía con muchos estilos integrados que puede usar. Incluyen los estilos de Solarize_Light2, _classic_test_patch, bmh, classic, dark_background, fast, fivethirtyeight, ggplot, escala de grises, seaborn, seaborn-bright, seaborn-colourblind, seaborn-dark, seaborn-dark-palette, seaborn-darkgrid, seaborn-deep , seaborn-muted, seaborn-notebook, seaborn-paper, seaborn-pastel, seaborn-poster, seaborn-talk, seaborn-ticks, seaborn-white, seaborn-whitegrid y tableau-colourblind10. A continuación, se muestran algunos ejemplos de cómo se ven esos estilos.

marino-oscuro
matplotlib seaborn-oscuro

bmh
estilo matplotlib bmh

Solarize_Light2
matplotlib solarize_light2

fondo_oscuro
matplotlib de fondo oscuro

cinco treinta y ocho
cinco treinta ocho matplotlib

Modo Matplotlib XKCD

Otra característica interesante de matplotlib es el modo de dibujo XKCD. Esto funciona de manera un poco diferente a simplemente aplicar estilos como lo hicimos anteriormente, pero es una forma realmente ordenada de hacer que sus gráficos tengan ese estilo de boceto XKCD. He aquí cómo hacerlo.

matplotlib xkcd

En este ejemplo, combinamos el modo XKCD con un estilo personalizado para un efecto ordenado.