Matplotlib | descripción general de la arquitectura de Matplotlib

Menos es más efectivo
Menos es más atractivo
Menos es más impactante

Aquí hay una nota sobre la arquitectura de Matplotlib, principalmente el contenido de la clase más la información que encuentra usted mismo, en la carpeta de inglés, puede usarla como referencia.

Arquitectura de Matplotlib

para más información

La arquitectura de Matplotlib se divide en tres capas, que pueden verse como una pila. Cada capa sobre otra capa sabe cómo comunicarse con la capa debajo de ella, pero la capa inferior no conoce la capa sobre ella. Las tres capas de abajo hacia arriba son: Backend, Artista, Capa de secuencias de comandos.

Capa de backend (FigureCanvas, Renderer, Evento)

Tiene tres clases de interfaz abstracta integradas:

  • FigureCanvas: matplotlib.backened_bases.FigureCnvas
    • Abarca el área en la que se dibuja la figura
    • Como papel de dibujo
  • Procesador: matplotlib.backened_bases.Renderer
    • Sabe dibujar en la figura.
    • Por ejemplo, cepillo
  • Evento: matplotlib.backend_bases.Event
    • Maneja entradas de usuario como pulsaciones de teclado y clics del mouse

Capa de artista (Artista)

  • Compuesto por un objeto principal - Artista:
    • Sabe cómo utilizar el renderizador para dibujar en el lienzo.
    • Todo lo que ves en matplotlib Figure es una instancia de Artist.
  • El título, las líneas, las etiquetas de marca y las imágenes corresponden a instancias de artistas individuales.
  • Dos tipos de objetos de artista:
    • Primitivo: Line2D, Rectangle, Circle y Text
    • Compuesto: eje, marca, ejes y figura
  • Cada artista puede contener otros artistas compuestos, así como artistas primitivos.

Un ejemplo de dibujo con Artista ~

# Putting the Artist Layer to Use
# generate a histogram of some data using the Artist layer
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas # import FigureCanvas
from matplotlib.figure import Figure # import Figure artist
fig = Figure()
canvas = FigureCanvas(fig)

# create 10000 random numbers using numpy
import numpy as np
x = np.random.randn(10000)

ax = fig.add_subplot(111) # create an axes artist

ax.hist(x, 100) # generate a histgram of the 10000 numbers

# add a little to the figure and save it
ax.set_title('Normal distribution with $\mu=0, \sigma=1$')
fig.savefig('matplotlib_histogram.png')

Inserte la descripción de la imagen aquí

Capa de secuencias de comandos (pyplot)

  • Uso diario, más conciso
  • Compuesto principalmente por pyplot , una interfaz de scripting más ligera que la capa Artista .
  • Veamos cómo podemos generar el mismo histograma de 10000 valores aleatorios usando la interfaz de pyplot
import matplotlib.pyplot as plt
import numpy as np

x = np.random.randn(10000)

plt.hist(x, 100)
plt.title(r'Normal distribution with $\mu=0, \sigma=1$')
plt.savefig('matplotlib_histogram.png')
plt.show()

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_43360896/article/details/113001344
Recomendado
Clasificación