Matplotlib es una biblioteca en Python que crea gráficos 2D para visualizar datos. La visualización siempre ayuda a un mejor análisis de los datos y mejora la capacidad de toma de decisiones del usuario. En este tutorial de matplotlib, trazaremos algunos gráficos y cambiaremos algunas propiedades como fuentes, etiquetas, rangos, etc.

Primero, instalaremos matplotlib, luego comenzaremos a trazar algunos gráficos básicos. Antes de eso, veamos algunos de los gráficos que puede dibujar matplotlib.

Tipos de parcelas

Hay varios tipos de gráficos diferentes en matplotlib. Esta sección explica brevemente algunos tipos de gráficos en matplotlib.

Gráfico de línea

Una gráfica de línea es una línea 2D simple en la gráfica.

Contorneado y pseudocolor

Podemos representar una matriz bidimensional en color usando la función pcolormesh () incluso si las dimensiones están espaciadas de manera desigual. De manera similar, la función contour () hace el mismo trabajo.

Histogramas

Para devolver los recuentos y probabilidades de bin en forma de histograma, usamos la función hist ().

Caminos

Para agregar una ruta arbitraria en Matplotlib usamos el módulo matplotlib.path.

Streamplot

Podemos usar la función streamplot () para trazar las líneas de corriente de un vector. También podemos mapear los colores y el ancho de los diferentes parámetros, como la velocidad, el tiempo, etc.

Gráfica de barras

Podemos usar la función bar () para hacer gráficos de barras con muchas personalizaciones.

Otros tipos

Algunos otros ejemplos de gráficos en Matplotlib incluyen:

  • Elipses
  • Gráficos circulares
  • Mesas
  • Gráfico de dispersión
  • Widgets GUI
  • Curvas llenas
  • Manejo de fechas
  • Parcelas de registro
  • Leyendas
  • TeX- Notaciones para objetos de texto
  • Representación nativa de TeX
  • GUI del EEG
  • Diagramas de croquis estilo XKCD

Instalación

Suponiendo que la ruta de Python está configurada en variables de entorno, solo necesita usar el comando pip para instalar el paquete matplotlib para comenzar.

Utilice el siguiente comando:

1
$ pip install matplotlib

En mi sistema, el paquete ya está instalado. Si el paquete aún no está allí, se descargará e instalará.

Para importar el paquete a su archivo Python, use la siguiente declaración:

1
import matplotlib.pyplot as plt

Donde matplotlib es la biblioteca, pyplot es un paquete que incluye todas las funciones de MATLAB para usar funciones de MATLAB en Python.

Finalmente, podemos usar plt para llamar a funciones dentro del archivo python.

Linea vertical

Para trazar una línea vertical con pyplot, puede usar la función axvline ().

La sintaxis de axvline es la siguiente:

1
plt.axvline(x=0, ymin=0, ymax=1, **kwargs)

En esta sintaxis: x es la coordenada del eje x. Este punto es desde donde se generaría la línea verticalmente. ymin es la parte inferior de la gráfica, ymax es la parte superior de la gráfica. ** kwargs son las propiedades de la línea, como el color, la etiqueta, el estilo de línea, etc.

1
2
3
4
5
6
7
import matplotlib.pyplot as plt
 
plt.axvline(0.2, 0, 1, label='pyplot vertical line')
 
plt.legend()
 
plt.show()

En este ejemplo, dibujamos una línea vertical. 0.2 significa que la línea se dibujará en el punto 0.2 del gráfico. 0 y 1 son ymin e ymax respectivamente.

etiquetar una de las propiedades de la línea. legend () es la función MATLAB que habilita la etiqueta en el gráfico. Finalmente, show () abrirá la pantalla del gráfico.

Linea horizontal

Axhline () traza una línea horizontal a lo largo de. La sintaxis de axhline () es la siguiente:

1
plt.axhline(y=0, xmin=0, xmax=1, **kwargs)

En la sintaxis: y son las coordenadas a lo largo del eje y. Estos puntos son desde donde se generaría la línea horizontalmente. xmin es la izquierda de la gráfica, xmax es la derecha de la gráfica. ** kwargs son las propiedades de la línea, como el color, la etiqueta, el estilo de línea, etc.

Reemplazando axvline () con axhline () en el ejemplo anterior, tendrá una línea horizontal en el gráfico:

1
2
3
4
5
6
7
8
9
import matplotlib.pyplot as plt
 
ypoints = 0.2
 
plt.axhline(ypoints, 0, 1, label='pyplot horizontal line')
 
plt.legend()
 
plt.show()

Varias líneas

Para trazar múltiples líneas verticales, podemos crear una matriz de x puntos / coordenadas, luego iterar a través de cada elemento de la matriz para trazar más de una línea:

01
02
03
04
05
06
07
08
09
10
11
import matplotlib.pyplot as plt
 
xpoints = [0.2, 0.4, 0.6]
 
for p in xpoints:
 
    plt.axvline(p,  label='pyplot vertical line')
 
plt.legend()
 
plt.show()

La salida será:

La salida anterior no parece muy atractiva, también podemos usar diferentes colores para cada línea en el gráfico.

Considere el siguiente ejemplo:

01
02
03
04
05
06
07
08
09
10
11
12
13
import matplotlib.pyplot as plt
 
xpoints = [0.2, 0.4, 0.6]
 
colors = ['g', 'c', 'm']
 
for p, c in zip(xpoints, colors):
 
    plt.axvline(p,  label='line: {}'.format(p), c=c)
 
plt.legend()
 
plt.show()

En este ejemplo, tenemos una matriz de líneas y una matriz de símbolos de color de Python. Usando la función zip () , ambas matrices se fusionan: el primer elemento de xpoints [] con el primer elemento de la matriz color [] . De esta manera, primera línea = verde, segunda línea = cian, etc.

Las llaves {} actúan como un marcador de posición para agregar variables de Python a la impresión con la ayuda de la función format (). Por lo tanto, tenemos xpuntos [] en la gráfica.

La salida del código anterior:

Simplemente reemplace axvline () con axhline () en el ejemplo anterior y tendrá múltiples líneas horizontales en el gráfico:

01
02
03
04
05
06
07
08
09
10
11
12
13
import matplotlib.pyplot as plt
 
ypoints = [0.2, 0.4, 0.6, 0.68]
 
colors = ['b', 'k', 'y', 'm']
 
for p, c in zip(ypoints, colors):
 
    plt.axhline(p,  label='line: {}'.format(p), c=c)
 
plt.legend()
 
plt.show()

El código es el mismo, tenemos una matriz de cuatro puntos del eje y y diferentes colores esta vez. Ambas matrices se fusionan con la función zip (), se iteran a través de la matriz final y axhline () traza las líneas como se muestra en el resultado a continuación:

Guardar figura

Después de trazar su gráfico, ¿cómo guardar el gráfico de salida?

Para guardar el gráfico, use savefig () de pyplot.

1
plt.savefig(fname, **kwargs)

Donde fname es el nombre del archivo. El destino o la ruta también se pueden especificar junto con el nombre del archivo. El parámetro kwargs es opcional. Se utiliza para cambiar la orientación, formato, color de la cara, calidad, dpi, etc.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
import matplotlib.pyplot as plt
 
ypoints = [0.2, 0.4, 0.6, 0.68]
 
colors = ['b','k','y', 'm']
 
for p, c in zip(ypoints, colors):
 
    plt.axhline(p,  label='line: {}'.format(p), c=c)
 
plt.savefig('horizontal_lines.png')
 
plt.legend()
 
plt.show()

El nombre del archivo es horizontal_lines.png, el archivo se guarda donde se almacena su archivo de Python:

Varias parcelas

Todos los ejemplos anteriores trataban de graficar en una parcela. ¿Qué hay de trazar múltiples parcelas en la misma figura?

Puede generar múltiples gráficos en la misma figura con la ayuda de la función subplot () de Python pyplot.

1
matplotlib.pyplot.subplot(nrows, ncols, index, **kwargs)

En los argumentos, tenemos tres números enteros para especificar, el número de parcelas en una fila y en una columna, luego en qué índice debe estar la parcela. Puede considerarlo como una cuadrícula y estamos dibujando en sus celdas.

El primer número sería nrows el número de filas, el segundo sería ncols el número de columnas y luego el índice. Otros argumentos opcionales (** kwargs) incluyen color, etiqueta, título, snap, etc.

Considere el siguiente código para comprender mejor cómo trazar más de un gráfico en una figura.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
from matplotlib import pyplot as plt
 
plt.subplot(1, 2, 1)
 
x1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
 
y1 = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
 
plt.plot(x1, y1, color = "c")
 
 
 
 
plt.subplot(1, 2, 2)
 
x2 = [40, 50, 60, 70, 80, 90, 100]
 
y2 = [40, 50, 60, 70, 80, 90, 100]
 
plt.plot(x2, y2, color = "m")
 
plt.show()

Lo primero es definir la ubicación de la parcela. En la primera subparcela, 1, 2, 1 indica que tenemos 1 fila, 2 columnas y la gráfica actual se trazará en el índice 1. De manera similar, 1, 2, 2 indica que tenemos 1 fila, 2 columnas pero esto cronometra el gráfico en el índice 2.

El siguiente paso es crear matrices para trazar puntos enteros en el gráfico. Mira el resultado a continuación:

Así es como se dibujan las subtramas verticales. Para trazar gráficos horizontales, cambie los valores de las filas y columnas de la subtrama como:

1
2
3
plt.subplot(2, 1, 1)
 
plt.subplot(2, 1, 2)

Esto significa que tenemos 2 filas y 1 columna. La salida será así:

Ahora creemos una cuadrícula de gráficos de 2 × 2.

Considere el siguiente código:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from matplotlib import pyplot as plt
 
plt.subplot(2, 2, 1)
 
x1 = [40, 50, 60, 70, 80, 90, 100]
 
y1 = [40, 50, 60, 70, 80, 90, 100]
 
plt.plot(x1, y1, color = "c")
 
 
 
 
plt.subplot(2, 2, 2)
 
x2 = [40, 50, 60, 70, 80, 90, 100]
 
x2 = [40, 50, 60, 70, 80, 90, 100]
 
plt.plot(x2, y2, color = "m")
 
 
 
 
plt.subplot(2, 2, 3)
 
x3 = [40, 50, 60, 70, 80, 90, 100]
 
y3 = [40, 50, 60, 70, 80, 90, 100]
 
plt.plot(x3, y3, color = "g")
 
 
 
 
plt.subplot(2, 2, 4)
 
x4 = [40, 50, 60, 70, 80, 90, 100]
 
y4 = [40, 50, 60, 70, 80, 90, 100]
 
plt.plot(x4, y4, color = "r")
 
plt.show()

La salida será:

En este ejemplo, 2,2,1 significa 2 filas, 2 columnas y el gráfico estará en el índice 1. De manera similar, 2,2,2 significa 2 filas, 2 columnas y el gráfico estará en el índice 2 de la cuadrícula. .

Tamaño de fuente

Podemos cambiar el tamaño de fuente de un gráfico con la ayuda de una función llamada rc (). La función rc () se utiliza para personalizar la configuración de rc. Para usar rc () para cambiar el tamaño de fuente, use la siguiente sintaxis:

1
matplotlib.pyplot.rc('fontname', **font)

O

1
matplotlib.pyplot.rc('font', size=sizeInt)

La fuente en la sintaxis anterior es un diccionario definido por el usuario, que especifica el peso, la familia de fuentes, el tamaño de fuente, etc. del texto.

1
plt.rc('font', size=30)

Esto cambiará la fuente a 30, la salida será:

Rango del eje

El rango o límite de los ejes xey se puede establecer usando las funciones xlim () e ylim () de pyplot respectivamente.

1
2
3
matplotlib.pyplot.xlim([starting_point, ending_point])