Grades de Imagens Matplotlib com Barras de Cores

Beginner

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

Introdução

Este laboratório trata da criação de grades de imagens com barras de cores usando Matplotlib. O código de exemplo fornecido demonstra como usar uma barra de cores comum para cada linha ou coluna de uma grade de imagens.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e 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

Primeiramente, precisamos importar as bibliotecas necessárias para criar a grade de imagens com barras de cores.

import matplotlib.pyplot as plt
from matplotlib import cbook
from mpl_toolkits.axes_grid1 import AxesGrid

Definir Dados da Imagem

Definimos uma função que retorna dados de imagem de exemplo e sua extensão.

def get_demo_image():
    z = cbook.get_sample_data("axes_grid/bivariate_normal.npy")  ## 15x15 array
    return z, (-3, 4, -4, 3)

Criar uma Grade com Barra de Cores Inferior

Criamos uma grade de imagens 2x2 com uma barra de cores para cada coluna.

def demo_bottom_cbar(fig):
    grid = AxesGrid(fig, 121,  ## similar to subplot(121)
                    nrows_ncols=(2, 2),
                    axes_pad=0.10,
                    share_all=True,
                    label_mode="1",
                    cbar_location="bottom",
                    cbar_mode="edge",
                    cbar_pad=0.25,
                    cbar_size="15%",
                    direction="column"
                    )

    Z, extent = get_demo_image()
    cmaps = ["autumn", "summer"]
    for i in range(4):
        im = grid[i].imshow(Z, extent=extent, cmap=cmaps[i//2])
        if i % 2:
            grid.cbar_axes[i//2].colorbar(im)

    for cax in grid.cbar_axes:
        cax.axis[cax.orientation].set_label("Bar")

    ## This affects all axes as share_all = True.
    grid.axes_llc.set_xticks([-2, 0, 2])
    grid.axes_llc.set_yticks([-2, 0, 2])

Criar uma Grade com Barra de Cores à Direita

Criamos uma grade de imagens 2x2 com uma barra de cores para cada linha.

def demo_right_cbar(fig):
    grid = AxesGrid(fig, 122,  ## similar to subplot(122)
                    nrows_ncols=(2, 2),
                    axes_pad=0.10,
                    label_mode="1",
                    share_all=True,
                    cbar_location="right",
                    cbar_mode="edge",
                    cbar_size="7%",
                    cbar_pad="2%",
                    )
    Z, extent = get_demo_image()
    cmaps = ["spring", "winter"]
    for i in range(4):
        im = grid[i].imshow(Z, extent=extent, cmap=cmaps[i//2])
        if i % 2:
            grid.cbar_axes[i//2].colorbar(im)

    for cax in grid.cbar_axes:
        cax.axis[cax.orientation].set_label('Foo')

    ## This affects all axes because we set share_all = True.
    grid.axes_llc.set_xticks([-2, 0, 2])
    grid.axes_llc.set_yticks([-2, 0, 2])

Criar a Figura e Chamar as Funções

Finalmente, criamos a figura e chamamos as funções para criar as grades de imagens com barras de cores.

fig = plt.figure()

demo_bottom_cbar(fig)
demo_right_cbar(fig)

plt.show()

Resumo

O Matplotlib oferece uma maneira simples de criar grades de imagens com barras de cores usando o toolkit (conjunto de ferramentas) AxesGrid. Este laboratório demonstrou como criar uma grade de imagens 2x2 com uma barra de cores para cada coluna e uma grade de imagens 2x2 com uma barra de cores para cada linha. Seguindo estes passos, você pode criar grades de imagens com barras de cores para seus próprios conjuntos de dados.