Creación de ejes de cuadrícula personalizados con Matplotlib

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos a crear una cuadrícula personalizada de ejes con Matplotlib utilizando el módulo mpl_toolkits.axes_grid1. Crearemos dos ejemplos: uno con tamaños y rellenos de ejes fijos, y otro con tamaños de ejes escalables y rellenos fijos.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y le resolveremos el problema inmediatamente.

Importando las bibliotecas necesarias

Comenzaremos importando las bibliotecas necesarias: matplotlib.pyplot para la visualización y mpl_toolkits.axes_grid1 para crear la cuadrícula personalizada de ejes.

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import Divider, Size

Definiendo una función auxiliar

Definiremos una función auxiliar label_axes() que se utilizará para colocar una etiqueta en el centro de un eje y eliminar las marcas de los ejes.

def label_axes(ax, text):
    """Place a label at the center of an Axes, and remove the axis ticks."""
    ax.text(.5,.5, text, transform=ax.transAxes,
            horizontalalignment="center", verticalalignment="center")
    ax.tick_params(bottom=False, labelbottom=False,
                   left=False, labelleft=False)

Creando una cuadrícula personalizada de ejes con tamaños y rellenos fijos

Crearemos una cuadrícula personalizada de ejes con tamaños y rellenos fijos. Utilizaremos la clase Divider para dividir el rectángulo de los ejes en una cuadrícula con los tamaños especificados por horiz * vert. Luego, agregaremos cuatro ejes a la figura utilizando el método add_axes() y especificaremos las posiciones de cada eje utilizando el método new_locator() de la clase Divider.

## Sizes are in inches.
horiz = [Size.Fixed(1.), Size.Fixed(.5), Size.Fixed(1.5), Size.Fixed(.5)]
vert = [Size.Fixed(1.5), Size.Fixed(.5), Size.Fixed(1.)]

rect = (0.1, 0.1, 0.8, 0.8)
fig = plt.figure(figsize=(6, 6))
fig.suptitle("Fixed axes sizes, fixed paddings")

div = Divider(fig, rect, horiz, vert, aspect=False)

## The rect parameter will actually be ignored and overridden by axes_locator.
ax1 = fig.add_axes(rect, axes_locator=div.new_locator(nx=0, ny=0))
label_axes(ax1, "nx=0, ny=0")
ax2 = fig.add_axes(rect, axes_locator=div.new_locator(nx=0, ny=2))
label_axes(ax2, "nx=0, ny=2")
ax3 = fig.add_axes(rect, axes_locator=div.new_locator(nx=2, ny=2))
label_axes(ax3, "nx=2, ny=2")
ax4 = fig.add_axes(rect, axes_locator=div.new_locator(nx=2, nx1=4, ny=0))
label_axes(ax4, "nx=2, nx1=4, ny=0")

plt.show()

Creando una cuadrícula personalizada de ejes con tamaños escalables y rellenos fijos

Crearemos otra cuadrícula personalizada de ejes con tamaños escalables y rellenos fijos. Utilizaremos la opción Size.Scaled() para especificar los tamaños de los ejes que se escalan con el tamaño de la figura. Los pasos restantes son similares al ejemplo anterior.

## Sizes are in inches.
horiz = [Size.Scaled(1.5), Size.Fixed(.5), Size.Scaled(1.), Size.Scaled(.5)]
vert = [Size.Scaled(1.), Size.Fixed(.5), Size.Scaled(1.5)]

rect = (0.1, 0.1, 0.8, 0.8)
fig = plt.figure(figsize=(6, 6))
fig.suptitle("Scalable axes sizes, fixed paddings")

div = Divider(fig, rect, horiz, vert, aspect=False)

## The rect parameter will actually be ignored and overridden by axes_locator.
ax1 = fig.add_axes(rect, axes_locator=div.new_locator(nx=0, ny=0))
label_axes(ax1, "nx=0, ny=0")
ax2 = fig.add_axes(rect, axes_locator=div.new_locator(nx=0, ny=2))
label_axes(ax2, "nx=0, ny=2")
ax3 = fig.add_axes(rect, axes_locator=div.new_locator(nx=2, ny=2))
label_axes(ax3, "nx=2, ny=2")
ax4 = fig.add_axes(rect, axes_locator=div.new_locator(nx=2, nx1=4, ny=0))
label_axes(ax4, "nx=2, nx1=4, ny=0")

plt.show()

Resumen

En este laboratorio, aprendimos cómo crear una cuadrícula personalizada de ejes con Matplotlib utilizando el módulo mpl_toolkits.axes_grid1. Creamos dos ejemplos: uno con tamaños y rellenos fijos de los ejes, y otro con tamaños escalables de los ejes y rellenos fijos. Utilizamos la clase Divider para dividir el rectángulo de los ejes en una cuadrícula con los tamaños especificados por horiz * vert y agregamos ejes a la figura utilizando el método add_axes() y el método new_locator() de la clase Divider.