De la entrada a la renuncia: análisis de datos de python series-matplotlib

Antes de comenzar, configure el entorno de Python y verifique si la biblioteca de terceros: matplotlib está instalada.
Este artículo es una nota de estudio de un blogger; por favor, señale las deficiencias.

1. Introducción a la biblioteca matplotlib

1.1 Introducción a la biblioteca matplotlib

La biblioteca matplotlib es una biblioteca de terceros para la visualización de datos, que contiene más de cien imágenes. Combina las ventajas y desventajas de matlab para formar matplotlib sobre esta base. matplotlib se compone de varias clases de visualización y tiene una estructura interna compleja. Por lo tanto, podemos llamar a estas funciones básicas a través de matplotlib.pyplot, una sub-biblioteca de comandos de matplotlib.
Generalmente, nos referimos a la sub-biblioteca de pyplot de la siguiente manera:

import matplotlib.pyplot as plt

1.2 Pequeña prueba

Primero dibujamos una imagen simple:

    import matplotlib.pyplot as plt
    
    
    plt.plot([1,2,3,7,4,2])      # 传入xy轴参数,默认为y轴
    plt.ylabel("Grade")          # 指定y轴 名称
    plt.savefig("test",dpi=600)  # 保存图像 默认png格式,其中dpi指图片质量
    plt.show()                   # 展示图片

El efecto es el siguiente:
Gráfico de linea

1.3 El área de dibujo de pyplot

Pyplot usa el método plt.subplot (nrows, ncols, plot_number) para dibujar múltiples subtramas en el mismo tablero de dibujo. Los parámetros se describen a continuación:

  • nrows: número horizontal
  • ncols: número vertical
  • plot_number: La posición del área del subgráfico actual.
    Por ejemplo, plt.subplot (2,2,3) significa que un área de trazado global se dividirá en 4 subáreas, y la subparcela actual se ubica en la posición de la tercera subparcela. Cuando el número de subparcelas es de un solo dígito, los parámetros en subplot () se pueden separar sin comas, es decir, subplot (223).
    Inserte la descripción de la imagen aquí

1.4 función de dibujo plot () de pyplot

Plot es la función de dibujo más importante en matplotlib, y todos sus parámetros se introducen de la siguiente manera:
plt.plot (x, y, format_string, ** kwargs)

  • x: los datos del eje x, que puede ser una lista o una matriz, es un parámetro opcional
  • y: Se requieren los datos del eje y, que puede ser una lista o una matriz.
  • ** kwargs: Puede ser el parámetro de la segunda curva, se debe tener en cuenta que al dibujar múltiples curvas debe existir el parámetro xy; también puede ser color, estilo de línea, marcador, etc.

La siguiente es una explicación detallada del parámetro format_string: El
parámetro format_string es una cadena que controla el formato de la curva, aunque es un parámetro opcional, es muy importante. Consiste en caracteres de color, caracteres de estilo y caracteres de marca, que se pueden utilizar en combinación.

(1) Caracteres de color, es decir, caracteres que controlan el color de la curva. Dado que hay muchos caracteres que controlan el color, aquí solo se enumeran algunos caracteres de uso común:

  • b: azul
  • g: verde
  • r: rojo
  • k: negro
  • w: blanco
  • y: amarillo
  • c: turquesa
  • m: magenta
  • # 000000: también puedes usar colores rgb

(2) Caracteres de estilo, es decir, caracteres que controlan el estilo de la curva:

  • "_":línea sólida
  • "-": Linea discontinua
  • ":": linea punteada
  • "": Barra inalámbrica

(3) Carácter de marcado: la marca del punto de coordenadas de datos:

  • ".": marca de punto
  • ",": marca de píxel
  • "v": marca de triángulo invertido
  • "^": Marca de triángulo superior
  • ">": Marca de triángulo rectángulo
  • "<": Marca de triángulo izquierdo
  • "1": marca de triángulo de flor inferior
  • "2": marca de triángulo de flor superior
  • "3": marca de triángulo de flor izquierda
  • "4": marca de triángulo floral derecho
  • "s": marca cuadrada sólida
  • "p": marca pentagonal sólida
  • "*": marca de asterisco
  • "o": marca de círculo sólido
  • "+": signo +
  • "x": marca x
  • "D": marca de diamante
    import matplotlib.pyplot as plt
    import numpy as np
    
    
    a = np.arange(20)
    
    plt.plot(a,a,"r--o",a,a*2,"b:",a,a*3,"y_")
    plt.savefig("01",dpi=600)
    plt.show()

La imagen es la siguiente:
Inserte la descripción de la imagen aquí

1.5 pantalla china de pyplot

Pyplot no admite la visualización en chino de forma predeterminada, por lo que debemos realizar algunos ajustes de código (si no se configura, la salida serán algunos cuadrados huecos).
Hay dos formas de cambiar la fuente, echemos un vistazo a la primera:

(1) Cambie la fuente global a través de rcparams,
echemos un vistazo al efecto si no configura el chino, como se muestra en la figura.

import matplotlib.pyplot as plt
import numpy as np


a = np.arange(20)

plt.plot(a,np.cos(0.02*a))
plt.xlabel("这是中文")
plt.savefig("03",dpi=600)
plt.show()

El efecto es el siguiente:
Inserte la descripción de la imagen aquí

Se puede encontrar que los signos del eje x son cuadrados. A continuación, presentamos rcparams de matplotlib para establecer atributos de fuente globales:

    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib
    
    
    matplotlib.rcParams["font.family"] = "SimHei"   # 设置字体为黑体
    a = np.arange(20)
    
    plt.plot(a,np.cos(0.02*a))
    plt.xlabel("这是中文")
    plt.savefig("03",dpi=600)
    plt.show()

La imagen es la siguiente:
Inserte la descripción de la imagen aquí

Se puede encontrar que se puede mostrar chino. Además de configurar el tipo de fuente, también tiene los siguientes atributos:

  • font.style: estilo de fuente (normal o cursiva)
  • font.size: tamaño de fuente

Sin embargo, si observa con atención, ya sea el logotipo del eje x o la escala del eje xy, todas sus fuentes se han vuelto en negrita. Esto es muy hostil para todo el mundo, por lo que podemos establecer el lugar donde se muestra el chino por separado. El segundo método es el siguiente:

(2) Configure la fuente individualmente a través del parámetro fontproperties:


    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib
    
    
    # matplotlib.rcParams["font.family"] = "SimHei"   # 设置字体为黑体
    a = np.arange(20)
    
    plt.plot(a,np.cos(0.02*a))
    plt.xlabel("这是中文",fontproperties="SimHei",fontsize=20)
    plt.savefig("03",dpi=600)
    plt.show()

El efecto de salida de la imagen es el siguiente:

Inserte la descripción de la imagen aquí
A través del parámetro fontproperties, podemos configurar fácilmente el texto requerido, haciendo que el dibujo sea más flexible.

1.6 visualización de texto pyplot

La visualización de texto consiste en agregar contenido como eje, leyenda, título y anotaciones de texto a la imagen para hacerla más profesional. Al mismo tiempo, es compatible con la sintaxis LaTeX, lo que lo hace más profesional. Anteriormente usamos plt.xlabel () para agregar etiquetas de texto al eje x, que es una de las funciones de visualización de texto. Todas las etiquetas de visualización de texto son las siguientes:

  • plt.xlabel (): agrega una etiqueta de texto al eje x
  • plt.ylabel (): agrega una etiqueta de texto al eje y
  • plt.tilte (): agrega un título a la imagen, ubicado en el medio de la parte superior de la imagen
  • plt.text (): agrega comentarios de texto en cualquier posición
  • plt.annotate (): agrega anotaciones con flechas a la imagen
    import matplotlib.pyplot as plt
    import numpy as np
    
    
    a = np.arange(0, 5, 0.02)
    plt.plot(a,np.cos(2*np.pi*a), "r--")
    
    plt.xlabel("时间",fontproperties="SimHei",fontsize=18,color="yellow")
    plt.ylabel("振幅",fontproperties="SimHei",fontsize=18,color="green")
    plt.title(r"正弦波图 $y=cos(2\pi x)$",fontproperties="SimHei",fontsize=26)
    plt.text(2,1,r"$\mu=100$",fontsize="15")
    
    plt.axis([-1,6,-2,2])  # x轴坐标尺度
    plt.grid(True)         # 显示网格
    plt.savefig("04",dpi=600)

La imagen es la siguiente:
Inserte la descripción de la imagen aquí

Veamos nuevamente la función plt.annotate (). Sus parámetros son los siguientes:

  • s: comenta el contenido del texto
  • xy = arrow_crd: donde apunta la flecha
  • xytext = text_crd: la ubicación del texto
  • arrowprops = dict: propiedades del texto

Modifiquemos el ejemplo anterior:

    import matplotlib.pyplot as plt
    import numpy as np
    
    
    a = np.arange(0, 5, 0.02)
    plt.plot(a,np.cos(2*np.pi*a), "r--")
    
    plt.xlabel("时间",fontproperties="SimHei",fontsize=18,color="yellow")
    plt.ylabel("振幅",fontproperties="SimHei",fontsize=18,color="green")
    plt.title(r"正弦波图 $y=cos(2\pi x)$",fontproperties="SimHei",fontsize=22)
    # plt.text(2,1,r"$\mu=100$",fontsize="15")
    plt.annotate(r"$\mu=100$",xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor="black",shrink=0.1,width=2))
    plt.axis([-1,6,-2,2])  # x轴坐标尺度
    plt.grid(True)         # 显示网格
    plt.savefig("04",dpi=600)
    plt.show()

La imagen es la siguiente

Inserte la descripción de la imagen aquí

1.7 Área de dibujo secundario de pyplot

Anteriormente mencionamos que la función de subtrama se usa para dibujar múltiples áreas de subfiguras regulares, pero ¿qué debemos hacer si queremos dibujar imágenes irregulares en el área? Aquí se proporciona una función plt.subplot2grid () para diseñar estructuras de subtramas complejas. Diseñando la cuadrícula, seleccionando la cuadrícula, determinando la fila y columna seleccionada y extendiéndola para formar el área que queramos. Los parámetros son los siguientes:

  • gridspec: establece la estructura de la cuadrícula
  • curspec: la posición inicial de la cuadrícula seleccionada
  • colspan: el número de columnas en la expansión de la cuadrícula (basado en el actual)
  • rowpan: el número de filas en la expansión de la cuadrícula (basado en el actual)

Usamos imágenes para entender:
plt.subplot ((4,4) (2,0), colspan = 3, rowspan = 2) es dividir el área de dibujo en 4 * 4 áreas, y luego usar la tercera fila y la primera columna de la subárea (negro) como punto de referencia, extienda 2 columnas y 1 fila (gris), es decir, el área roja es pero cubre el área de la subimagen anterior, como se muestra en la figura:
Inserte la descripción de la imagen aquí

Los métodos anteriores tienen códigos más complicados a la hora de dibujar. Por lo tanto, matplotlib nos proporciona otra biblioteca gridspec () más simple para diseñar subgrafos complejos. Lo explicaremos a través de código e imágenes;
como se muestra en la figura, si desea seleccionar gris y negro Como parte de un área de subimagen, podemos hacer esto:

    import matplotlib.pyplot as plt
    from matplotlib import gridspec
    
    gs = gridspec.GridSpec(4,4)
    
    plt.subplot(gs[2:,0:-1])

Esto es muy similar a la operación de corte de matrices bidimensionales en numpy. Es decir, en la matriz gs bidimensional, seleccionamos el subíndice 2 unidimensional y los elementos después de 2, y luego seleccionamos el subíndice bidimensional comenzando desde 0 hasta la penúltima región.

1.8 Acerca de las funciones gráficas básicas de pyplot

Hay muchas funciones de gráficos básicas de pyplot, y algunos de estos gráficos se usan con mucha frecuencia, y algunos se usan con poca frecuencia (debe tenerse en cuenta que un uso menor no significa que no sean importantes). En el siguiente contenido, el blogger solo presenta brevemente algunos gráficos de uso común. Si desea conocer gráficos más básicos, puede ir al sitio web oficial de matplotlib para aprender. Aquí hay un enlace: sitio web oficial de matplotlib

1.9 Dibujo de un gráfico circular de pyplot

Los gráficos circulares son simples e intuitivos y, a menudo, se utilizan para datos con signos de porcentaje. El gráfico circular está dibujado por plt.pie ():

 import matplotlib.pyplot as plt
    
    
    labels = "a","b","c","d","e","f","g"  # 每一块的标签
    sizes = [10,20,30,15,15,10,20]        # 每一块饼图的尺寸
    explode = (0,0.1,0,0.5,0,0.2,0)       # 指定哪一块是否突出,以及突出强度
    
    plt.pie(sizes,explode=explode,labels=labels,autopct="%1.1f%%",shadow=True,startangle=90)   # autopct 是百分数的显示格式,shadow是否带有阴影 startangle是饼图的起始角度
    plt.axis("equal")  # 画出图像是正圆形
    plt.show()

La imagen es la siguiente:
Inserte la descripción de la imagen aquí

Para obtener más información, consulte el documento oficial de pie ()

1.10 dibujo de histograma de pyplot

Creo que todos están familiarizados con los histogramas, así que, cómo dibujar histogramas, primero veamos un fragmento de código:

    import numpy as np
    import matplotlib.pyplot as plt
    
    
    np.random.seed(0)
    mu = 100
    sigma = 200
    a = np.random.normal(mu,sigma,size=100)
    
    plt.hist(a,20,histtype="stepfilled",facecolor="b",alpha=0.75)
    plt.title("直方图",fontproperties="SimHei")
    plt.show()

La imagen es la siguiente:
Inserte la descripción de la imagen aquí

Usamos numpy para generar una matriz de distribución normal y la usamos para dibujar un histograma. Dibujamos el histograma usando la función plt.hist (), donde a son los datos entrantes, y el segundo parámetro bin se usa para controlar el número de histogramas en la imagen (aquí significa que hay 20 histogramas en total), aquí está el método de división de números Es para seleccionar los dos valores más grandes y más pequeños de la matriz, que se dividen en áreas de contenedor en el rango. El número de elementos en cada contenedor es la altura de este histograma.
Para obtener más información, consulte la documentación oficial de hist () .

1.11 Dibujo del diagrama de dispersión de pyplot

Podemos dibujar diagramas de dispersión a través del diagrama o la dispersión, donde los diagramas de dispersión se dibujan de manera similar a la gráfica. No más presentaciones aquí. Documentación oficial de scatter ()

Supongo que te gusta

Origin blog.csdn.net/qq_45807032/article/details/107506802
Recomendado
Clasificación