Gráfico de Barras com Matplotlib

Beginner

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

Introdução

Matplotlib é uma popular biblioteca Python utilizada para visualização de dados. Ela oferece uma ampla gama de ferramentas para criar gráficos, diagramas e outras visualizações. Neste tutorial, você aprenderá como criar um gráfico de barras com gradientes usando Matplotlib.

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 às limitações do 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 as bibliotecas necessárias

Primeiramente, precisamos importar as bibliotecas necessárias, que são NumPy e Matplotlib. NumPy é uma biblioteca utilizada para computações numéricas, enquanto Matplotlib é uma biblioteca utilizada para visualização de dados.

import matplotlib.pyplot as plt
import numpy as np

Definir a semente aleatória

Definiremos a semente aleatória para garantir que obtenhamos os mesmos números aleatórios toda vez que executarmos o código. Isso é feito usando a função np.random.seed().

np.random.seed(19680801)

Definir a função de imagem gradiente

Precisamos definir uma função que criará uma imagem gradiente com base em um mapa de cores (colormap). Esta função receberá um objeto de eixos (axes), a direção do gradiente e a faixa do mapa de cores a ser usado. A função então gerará a imagem gradiente e a retornará.

def gradient_image(ax, direction=0.3, cmap_range=(0, 1), **kwargs):
    """
    Desenha uma imagem gradiente com base em um mapa de cores.

    Parâmetros
    ----------
    ax : Axes
        Os eixos para desenhar.
    direction : float
        A direção do gradiente. Este é um número no intervalo
        de 0 (=vertical) a 1 (=horizontal).
    cmap_range : float, float
        A fração (cmin, cmax) do mapa de cores que deve ser
        usada para o gradiente, onde o mapa de cores completo é (0, 1).
    **kwargs
        Outros parâmetros são passados para `.Axes.imshow()`.
        Em particular, *cmap*, *extent* e *transform* podem ser úteis.
    """
    phi = direction * np.pi / 2
    v = np.array([np.cos(phi), np.sin(phi)])
    X = np.array([[v @ [1, 0], v @ [1, 1]],
                  [v @ [0, 0], v @ [0, 1]]])
    a, b = cmap_range
    X = a + (b - a) / X.max() * X
    im = ax.imshow(X, interpolation='bicubic', clim=(0, 1),
                   aspect='auto', **kwargs)
    return im

Definir a função de barra gradiente

Em seguida, precisamos definir uma função que criará uma barra gradiente. Esta função receberá o objeto de eixos (axes), as coordenadas x e y da barra, a largura da barra e a posição inferior da barra. A função então criará uma imagem gradiente para cada barra e a retornará.

def gradient_bar(ax, x, y, width=0.5, bottom=0):
    for left, top in zip(x, y):
        right = left + width
        gradient_image(ax, extent=(left, right, bottom, top),
                       cmap=plt.cm.Blues_r, cmap_range=(0, 0.8))

Criar o gráfico

Agora, podemos criar o gráfico. Primeiro, criaremos uma figura e um objeto de eixos (axes). Em seguida, definiremos os limites x e y dos eixos. Criaremos um fundo gradiente usando a função gradient_image(). Finalmente, criaremos um conjunto de dados aleatórios e usaremos a função gradient_bar() para criar o gráfico de barras.

fig, ax = plt.subplots()
ax.set(xlim=(0, 10), ylim=(0, 1))

## background image
gradient_image(ax, direction=1, extent=(0, 1, 0, 1), transform=ax.transAxes,
               cmap=plt.cm.RdYlGn, cmap_range=(0.2, 0.8), alpha=0.5)

N = 10
x = np.arange(N) + 0.15
y = np.random.rand(N)
gradient_bar(ax, x, y, width=0.7)
plt.show()

Resumo

Neste tutorial, você aprendeu como criar um gráfico de barras com gradientes usando Matplotlib. Você aprendeu como definir a função de imagem gradiente e a função de barra gradiente, e como criar um gráfico usando essas funções. Você também aprendeu como definir a semente aleatória (random seed) e como importar as bibliotecas necessárias.