Matplotlib - Interfaz orientada a objetos
Si bien es fácil generar gráficos rápidamente con la matplotlib.pyplotmódulo, se recomienda el uso de un enfoque orientado a objetos, ya que brinda más control y personalización de sus gráficos. La mayoría de las funciones también están disponibles en matplotlib.axes.Axes clase.
La idea principal detrás del uso del método orientado a objetos más formal es crear objetos de figura y luego simplemente llamar a métodos o atributos fuera de ese objeto. Este enfoque ayuda mejor a lidiar con un lienzo que tiene múltiples trazados.
En la interfaz orientada a objetos, Pyplot se usa solo para algunas funciones, como la creación de figuras, y el usuario crea y realiza un seguimiento explícito de la figura y los objetos de los ejes. En este nivel, el usuario usa Pyplot para crear figuras y, a través de esas figuras, se pueden crear uno o más objetos de ejes. Estos objetos de ejes se utilizan para la mayoría de las acciones de trazado.
Para empezar, creamos una instancia de figura que proporciona un lienzo vacío.
fig = plt.figure()
Ahora agregue ejes a la figura. losadd_axes()El método requiere un objeto de lista de 4 elementos correspondientes a la izquierda, abajo, ancho y alto de la figura. Cada número debe estar entre 0 y 1 -
ax=fig.add_axes([0,0,1,1])
Establecer etiquetas para los ejes xey, así como el título -
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
Invoque el método plot () del objeto axes.
ax.plot(x,y)
Si está utilizando un cuaderno Jupyter, debe emitir la directiva en línea% matplotlib; la función otherwistshow () del módulo pyplot muestra el gráfico.
Considere ejecutar el siguiente código:
from matplotlib import pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
plt.show()
Salida
La línea de código anterior genera la siguiente salida:
El mismo código cuando se ejecuta en el cuaderno Jupyter muestra el resultado como se muestra a continuación: