Matplotlib¶
Acerca de Matplotlib¶
Matplotlib es una biblioteca para la generación de gráficos a partir de datos contenidos en listas o arrays en Python, complementada con la extensión matemática NumPy. Proporciona una API llamada pylab
, diseñada para recordar la funcionalidad de MATLAB.
En Matplotlib, todo está organizado en una jerarquía que facilita tanto el uso básico como el avanzado:
Módulo
matplotlib.pyplot
: En la parte superior de la jerarquía se encuentrapyplot
, un conjunto de funciones simples para agregar elementos de trazado (líneas, imágenes, texto, etc.) a los ejes actuales en la figura actual. Este nivel es ideal para usuarios que buscan una manera rápida y sencilla de crear gráficos.import matplotlib.pyplot as plt # Crear una figura y un conjunto de ejes fig, ax = plt.subplots() # Agregar una línea a los ejes ax.plot([1, 2, 3, 4], [10, 20, 25, 30]) # Mostrar el gráfico plt.show()
Interfaz Orientada a Objetos (OO): En el siguiente nivel de la jerarquía se encuentra la interfaz orientada a objetos. Aquí,
pyplot
se usa solo para algunas funciones como la creación de figuras, mientras que el usuario crea y maneja explícitamente los objetos de figura y ejes. Este enfoque proporciona un mayor control y flexibilidad sobre los elementos gráficos.import matplotlib.pyplot as plt # Crear una figura fig = plt.figure() # Agregar un conjunto de ejes a la figura ax = fig.add_subplot(111) # Agregar una línea a los ejes ax.plot([1, 2, 3, 4], [10, 20, 25, 30]) # Mostrar el gráfico plt.show()
Componentes de un gráfico¶
Figure¶
Es la visualización completa. Figure realiza un seguimiento de todos los Axes hijos y el Canvas. Una figura puede tener cualquier número de Axes, pero para ser útil debe tener al menos uno.
La forma más fácil de crear una nueva Figure es con pyplot:
fig = plt.figure() # an empty figure with no axes
fig, ax_lst = plt.subplots(2, 2) # a figure with a 2x2 grid of Axes
Axes¶
Esto es lo que se puede pensar como 'un gráfico', es la región de la imagen con el espacio de datos. Un Figure dada puede contener muchos Axes, pero un objeto Axe dado solo puede estar en un Figure. Axes contiene dos (o tres en el caso de 3D) objetos Axis que se ocupan de los límites de datos. Cada Axe tiene un título, una etiqueta para el eje horizonal y una etiqueta para el eje vertical.
La clase Axes y sus funciones son el punto de entrada principal para trabajar con la interfaz orientada a objetos.
Axis¶
Corresponden a los ejes, algo así como líneas rectas. Se encargan de establecer los límites del gráfico y generar los ticks (las marcas en el eje) y los ticklabels (strings que etiquetan los ticks).
Visualización Imperativa¶
La visualización imperativa se centra en las instrucciones específicas necesarias para crear una visualización, sin abstraer las operaciones o codificaciones visuales. Este enfoque requiere una especificación detallada de cada paso del proceso de trazado. Algunas de sus características principales son:
- Especificación del "Cómo": Se debe definir explícitamente cómo se deben realizar las tareas para crear la visualización.
- Pasos del trazado manuales: Cada paso del proceso de creación de la visualización debe ser especificado manualmente por el usuario.
- Especificación y ejecución entrelazadas: La definición de la visualización y su ejecución están estrechamente vinculadas, lo que significa que los pasos de especificación y ejecución se realizan conjuntamente.
Coloquialmente, esto significa que se debe decidir pixel a pixel lo que se desea mostrar en la visualización. En otras palabras, el usuario tiene un control total y detallado sobre cada aspecto del gráfico, lo que puede resultar en un proceso más laborioso pero permite una personalización completa.