Introdução
Matplotlib é uma biblioteca Python que permite a criação de visualizações estáticas, animadas e interativas em Python. É amplamente utilizada em computação científica, análise de dados, machine learning e muito mais. Neste laboratório, você aprenderá como plotar imagens usando Matplotlib e como manipular a localização de eixos e barras de cores.
Dicas da VM
Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.
Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.
Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.
Importar Bibliotecas
Nesta etapa, importaremos as bibliotecas necessárias que serão usadas neste laboratório. Usaremos matplotlib.pyplot e cbook de matplotlib para obter uma imagem de amostra.
import matplotlib.pyplot as plt
from matplotlib import cbook
Obter Imagem de Demonstração
Nesta etapa, definiremos uma função para obter uma imagem de demonstração e sua extensão. Usaremos a função get_sample_data() de cbook para obter uma imagem de amostra.
def get_demo_image():
z = cbook.get_sample_data("axes_grid/bivariate_normal.npy") ## 15x15 array
return z, (-3, 4, -4, 3)
Imagem Simples e Barra de Cores
Nesta etapa, criaremos uma imagem simples e sua barra de cores. Usaremos a função imshow() de pyplot para criar a imagem e a função colorbar() para criar a barra de cores.
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)
Imagem e Barra de Cores com Posicionamento em Tempo de Desenho - Uma Abordagem Difícil
Nesta etapa, criaremos uma imagem e sua barra de cores com posicionamento em tempo de desenho de uma maneira difícil. Usaremos SubplotDivider de mpl_toolkits.axes_grid1 para criar um divisor para os eixos e a barra de cores.
def demo_locatable_axes_hard(fig):
from mpl_toolkits.axes_grid1 import Size, SubplotDivider
divider = SubplotDivider(fig, 2, 2, 2, aspect=True)
## axes for image
ax = fig.add_subplot(axes_locator=divider.new_locator(nx=0, ny=0))
## axes for colorbar
ax_cb = fig.add_subplot(axes_locator=divider.new_locator(nx=2, ny=0))
divider.set_horizontal([
Size.AxesX(ax), ## main axes
Size.Fixed(0.05), ## padding, 0.1 inch
Size.Fixed(0.2), ## colorbar, 0.3 inch
])
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)
Imagem e Barra de Cores com Posicionamento em Tempo de Desenho - Uma Abordagem Fácil
Nesta etapa, criaremos uma imagem e sua barra de cores com posicionamento em tempo de desenho de uma maneira fácil. Usaremos make_axes_locatable de mpl_toolkits.axes_grid1 para criar um divisor para os eixos e a barra de cores.
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)
Duas Imagens Lado a Lado com Preenchimento Fixo
Nesta etapa, criaremos duas imagens lado a lado com preenchimento fixo. Usaremos make_axes_locatable de mpl_toolkits.axes_grid1 para criar um divisor para os eixos e a barra de cores.
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)
Plotagem
Nesta etapa, criaremos uma figura e adicionaremos subplots para cada imagem que queremos criar.
def demo():
fig = plt.figure(figsize=(6, 6))
## PLOT 1
## simple image & colorbar
ax = fig.add_subplot(2, 2, 1)
demo_simple_image(ax)
## PLOT 2
## image and colorbar with draw-time positioning -- a hard way
demo_locatable_axes_hard(fig)
## PLOT 3
## image and colorbar with draw-time positioning -- an easy way
ax = fig.add_subplot(2, 2, 3)
demo_locatable_axes_easy(ax)
## PLOT 4
## two images side by side with fixed padding.
ax = fig.add_subplot(2, 2, 4)
demo_images_side_by_side(ax)
plt.show()
Resumo
Neste laboratório, aprendemos como plotar imagens usando Matplotlib e como manipular a localização de eixos e barras de cores. Cobrimos diferentes maneiras de criar imagens e barras de cores e como posicioná-las na figura. Com o conhecimento adquirido neste laboratório, você será capaz de criar visualizações mais complexas e manipulá-las para atender às suas necessidades.