English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NumPy Matplotlib

pip3 Instalación:

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

Los sistemas Linux también pueden instalarlo utilizando el administrador de paquetes Linux:

Debian / Ubuntu:

sudo apt-get install python-matplotlib

Fedora / Redhat:

sudo yum install python-matplotlib

Después de la instalación, puede usar python -m pip list El comando se utiliza para verificar si se ha instalado el módulo matplotlib.

$ pip3 list | grep matplotlib
matplotlib 3.3.0

Ejemplo

 import numpy as np 
 from matplotlib import pyplot as plt 
  
 x = np.arange(1,11) 
 y = 2 * x + 5 
 plt.title("demo de Matplotlib") 
 plt.xlabel("caption del eje X") 
 plt.ylabel("caption del eje Y") 
 plt.plot(x,y) plt.show()

En el ejemplo anterior, la función np.arange() crea valores en el eje x. Los valores correspondientes en el eje y se almacenan en otro objeto de array y. Estos valores se dibujan con la función plot() del submódulo pyplot del paquete matplotlib.

El gráfico se muestra con la función show() del objeto de función.

Visualización de chino en gráficos

Matplotlib no admite por defecto el chino simplificado, podemos resolverlo con el siguiente método simple.

Aquí usamos Source Han Sans, Source Han Sans es una fuente de código abierto lanzada por Adobe y Google.

Sitio web: https://source.typekit.com/source-han-serif/cn/

Dirección de GitHub: https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese

Después de abrir el enlace, seleccione uno de ellos dentro de él:

Puede descargar una fuente OTF, como SourceHanSansSC-Bold.otf, coloque el archivo en el archivo de código ejecutándose actualmente:

SourceHanSansSC-Bold.otf debe estar en el archivo de código ejecutándose actualmente:

 import numpy as np 
 from matplotlib import pyplot as plt 
 import matplotlib
  
 # fname es la ruta de la biblioteca de fuentes descargada, note que el archivo SourceHanSansSC-ruta del archivo de la fuente Bold.otf
 zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf") 
  
 x = np.arange(1,11) 
 y = 2 * x + 5 
 plt.title("mercancía de pie - prueba", fontproperties=zhfont1) 
  
 # fontproperties establece la visualización de caracteres chinos, fontsize establece el tamaño de la fuente
 plt.xlabel("eje x", fontproperties=zhfont1)
 plt.ylabel("eje y", fontproperties=zhfont1)
 plt.plot(x,y) 
 plt.show()

Además, también podemos usar las fuentes del sistema:

 from matplotlib import pyplot as plt
 import matplotlib
 a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
 for i in a:
     print(i)

Imprimir todos los nombres registrados en ttflist de su font_manager, encontrar un nombre de fuente de caracteres chinos, por ejemplo: STFangsong (Fangsong), y agregar el siguiente código:

plt.rcParams['font.family']=['STFangsong']

Como sustituto de un gráfico lineal, se pueden mostrar valores discretos agregando una cadena de formato al función plot(). Se pueden usar los siguientes caracteres de formato.

carácterdescripción
'-'estilo de línea sólida
'--'estilo de línea de guión corto
'-.'estilo de línea punteada
':'estilo de línea punteada
'.'marca de punto
','marca de píxel
'o'marca de círculo
'v'marca de triángulo invertido
'^'marca de triángulo recto
'<'marca de triángulo izquierdo
'>'marca de triángulo derecho
'1'marca de flecha hacia abajo
'2'marca de flecha hacia arriba
'3'marca de flecha hacia la izquierda
'4'marca de flecha hacia la derecha
's'marca de cuadrado
'p'marca de pentágono
'*'marca de estrella
'h'marca de hexágono 1
'H'marca de hexágono 2
'+'marca de más
'x'marca de X
'D'marca de diamante
'd'marca de diamante delgado
'&'124;'marca de línea vertical
'_'marca de línea horizontal

A continuación se muestra la abreviatura de los colores:

carácterColor
'b'Azul
'g'Verde
'r'Rojo
'c'Cian
'm'Fucsia
'y'Amarillo
'k'Negro
'w'Blanco

Para mostrar círculos para representar puntos en lugar de la línea en los ejemplos anteriores, use ob como cadena de formato en la función plot().

 import numpy as np 
 from matplotlib import pyplot as plt 
  
 x = np.arange(1,11) 
 y = 2 * x + 5 
 plt.title("demo de Matplotlib") 
 plt.xlabel("caption del eje X") 
 plt.ylabel("caption del eje Y") 
 plt.plot(x, y, "ob") 
 plt.show()

El resultado de la ejecución se muestra en la imagen siguiente:

Dibujar onda senoidal

Este ejemplo usa matplotlib para generar un gráfico de onda senoidal.

 import numpy as np 
 import matplotlib.pyplot as plt 
 # Calcular las coordenadas x e y de los puntos en la curva de seno
 x = np.arange(0, 3 * np.pi, 0.1) 
 y = np.sin(x)
 plt.title("forma de onda de seno") 
 # Usar matplotlib para dibujar puntos
 plt.plot(x, y) 
 plt.show()

El resultado de la ejecución se muestra en la imagen siguiente:

subplot()

La función subplot() permite dibujar diferentes cosas en el mismo gráfico.

Este ejemplo dibuja valores de seno y coseno:

 import numpy as np 
 import matplotlib.pyplot as plt 
 # Calcular las coordenadas x e y de los puntos en las curvas de seno y coseno 
 x = np.arange(0, 3 * np.pi, 0.1) 
 y_sin = np.sin(x) 
 y_cos = np.cos(x) 
 # Crear una cuadrícula de subplot, altura de 2,ancho de 1 
 # Activar el primer subplot
 plt.subplot(2, 1, 1) 
 # Dibujar la primera imagen 
 plt.plot(x, y_sin) 
 plt.title('Seno') 
 # Activar el segundo subplot y dibujar la segunda imagen
 plt.subplot(2, 1, 2) 
 plt.plot(x, y_cos) 
 plt.title('Coseno') 
 # Mostrar imagen
 plt.show()

El resultado de la ejecución se muestra en la imagen siguiente:

bar()

El submódulo pyplot proporciona la función bar() para generar gráficos de barras.

Este ejemplo genera un gráfico de barras con dos arreglos x y y.

 from matplotlib import pyplot as plt 
 x = [5,8,10] 
 y = [12,16,6] 
 x2 = [6,9,11] 
 y2 = [6,15,7] 
 plt.bar(x, y, align = 'center') 
 plt.bar(x2, y2, color = 'g', align = 'center') 
 plt.title('Gráfico de barras') 
 plt.ylabel('Eje Y') 
 plt.xlabel('Eje X') 
 plt.show()

El resultado de la ejecución se muestra en la imagen siguiente:

numpy.histogram()

La función np.histogram() es una representación gráfica de la distribución de frecuencia de los datos. Los rectángulos de igual tamaño en el plano horizontal corresponden a la amplitud de la clase, denominada bin, y la variable height corresponde a la frecuencia.

La función np.histogram() toma dos parámetros: el array de entrada y el bin. Los elementos consecutivos del array bin se utilizan como límites de cada bin.

 import numpy as np 
  
 a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
 np.histogram(a, bins = [0,20,40,60,80,100]) 
 hist, bins = np.histogram(a, bins = [0,20,40,60,80,100]) 
 print(hist) 
 print(bins)

El resultado de la salida es:

 [3 4 5 2 1]
 [ 0 20 40 60 80 100]

plt()

Matplotlib puede convertir la representación numérica de un histograma en gráficos. La función plt() del submódulo pyplot toma como parámetro un array que contiene datos y un array de bin, y lo convierte en un histograma.

 from matplotlib import pyplot as plt 
 import numpy as np 
  
 a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) 
 plt.hist(a, bins = [0,20,40,60,80,100]) 
 plt.title("histograma") 
 plt.show()

El resultado de la ejecución se muestra en la imagen siguiente:

Más contenido de referencia de Matplotlib:

Guía del usuario Preguntas frecuentes y respuestas Captura de pantalla