Introducción
Matplotlib es una biblioteca de Python que permite la creación de visualizaciones estáticas, animadas e interactivas en Python. Se utiliza ampliamente en el cálculo científico, el análisis de datos, el aprendizaje automático y más. En este laboratorio, aprenderá a trazar imágenes utilizando Matplotlib y a manipular la ubicación de los ejes y las barras de color.
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 las 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 sus comentarios después de la sesión y lo resolveremos rápidamente para usted.
Importar bibliotecas
En este paso, importaremos las bibliotecas necesarias que se utilizarán en este laboratorio. Utilizaremos matplotlib.pyplot y cbook de matplotlib para obtener una imagen de muestra.
import matplotlib.pyplot as plt
from matplotlib import cbook
Obtener imagen de demostración
En este paso, definiremos una función para obtener una imagen de demostración y su extensión. Utilizaremos la función get_sample_data() de cbook para obtener una imagen de muestra.
def get_demo_image():
z = cbook.get_sample_data("axes_grid/bivariate_normal.npy") ## 15x15 array
return z, (-3, 4, -4, 3)
Imagen y barra de color simples
En este paso, crearemos una imagen simple y su barra de color. Utilizaremos la función imshow() de pyplot para crear la imagen y la función colorbar() para crear la barra de color.
def demo_simple_image(ax):
Z, extent = get_demo_image()
im = ax.imshow(Z, extent=extent)
cb = plt.colorbar(im)
cb.ax.yaxis.set_tick_params(labelright=False)
Imagen y barra de color con posicionamiento en tiempo de dibujo: una forma difícil
En este paso, crearemos una imagen y su barra de color con posicionamiento en tiempo de dibujo de una manera difícil. Utilizaremos SubplotDivider de mpl_toolkits.axes_grid1 para crear un divisor para los ejes y la barra de color.
def demo_locatable_axes_hard(fig):
from mpl_toolkits.axes_grid1 import Size, SubplotDivider
divider = SubplotDivider(fig, 2, 2, 2, aspect=True)
## ejes para la imagen
ax = fig.add_subplot(axes_locator=divider.new_locator(nx=0, ny=0))
## ejes para la barra de color
ax_cb = fig.add_subplot(axes_locator=divider.new_locator(nx=2, ny=0))
divider.set_horizontal([
Size.AxesX(ax), ## ejes principales
Size.Fixed(0.05), ## relleno, 0.1 pulgada
Size.Fixed(0.2), ## barra de color, 0.3 pulgada
])
divider.set_vertical([Size.AxesY(ax)])
Z, extent = get_demo_image()
im = ax.imshow(Z, extent=extent)
plt.colorbar(im, cax=ax_cb)
ax_cb.yaxis.set_tick_params(labelright=False)
Imagen y barra de color con posicionamiento en tiempo de dibujo: una forma fácil
En este paso, crearemos una imagen y su barra de color con posicionamiento en tiempo de dibujo de una manera fácil. Utilizaremos make_axes_locatable de mpl_toolkits.axes_grid1 para crear un divisor para los ejes y la barra de color.
def demo_locatable_axes_easy(ax):
from mpl_toolkits.axes_grid1 import make_axes_locatable
divider = make_axes_locatable(ax)
ax_cb = divider.append_axes("right", size="5%", pad=0.05)
fig = ax.get_figure()
fig.add_axes(ax_cb)
Z, extent = get_demo_image()
im = ax.imshow(Z, extent=extent)
plt.colorbar(im, cax=ax_cb)
ax_cb.yaxis.tick_right()
ax_cb.yaxis.set_tick_params(labelright=False)
Dos imágenes una al lado de la otra con relleno fijo
En este paso, crearemos dos imágenes una al lado de la otra con un relleno fijo. Utilizaremos make_axes_locatable de mpl_toolkits.axes_grid1 para crear un divisor para los ejes y la barra de color.
def demo_images_side_by_side(ax):
from mpl_toolkits.axes_grid1 import make_axes_locatable
divider = make_axes_locatable(ax)
Z, extent = get_demo_image()
ax2 = divider.append_axes("right", size="100%", pad=0.05)
fig1 = ax.get_figure()
fig1.add_axes(ax2)
ax.imshow(Z, extent=extent)
ax2.imshow(Z, extent=extent)
ax2.yaxis.set_tick_params(labelleft=False)
Graficado
En este paso, crearemos una figura y agregaremos subgráficos para cada imagen que queramos crear.
def demo():
fig = plt.figure(figsize=(6, 6))
## GRAFICA 1
## imagen simple y barra de color
ax = fig.add_subplot(2, 2, 1)
demo_simple_image(ax)
## GRAFICA 2
## imagen y barra de color con posicionamiento en tiempo de dibujo: una forma difícil
demo_locatable_axes_hard(fig)
## GRAFICA 3
## imagen y barra de color con posicionamiento en tiempo de dibujo: una forma fácil
ax = fig.add_subplot(2, 2, 3)
demo_locatable_axes_easy(ax)
## GRAFICA 4
## dos imágenes una al lado de la otra con relleno fijo.
ax = fig.add_subplot(2, 2, 4)
demo_images_side_by_side(ax)
plt.show()
Resumen
En este laboratorio, aprendimos cómo graficar imágenes utilizando Matplotlib y cómo manipular la ubicación de los ejes y las barras de color. Cubrimos diferentes maneras de crear imágenes y barras de color y cómo colocarlas en la figura. Con los conocimientos adquiridos en este laboratorio, podrás crear visualizaciones más complejas y manipularlas para adaptarlas a tus necesidades.