Introdução
Neste laboratório, aprenderemos como criar box plots a partir de barras de erro usando PatchCollection. Box plots são úteis para exibir a amplitude e a distribuição de dados. Adicionando um patch retangular definido pelos limites das barras nas direções x e y, podemos criar um gráfico de barras de erro mais visualmente atraente.
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, importaremos as bibliotecas necessárias, incluindo numpy e matplotlib.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.collections import PatchCollection
from matplotlib.patches import Rectangle
Preparar Dados
Em seguida, prepararemos os dados para nosso box plot. Criaremos alguns dados fictícios para os valores de x e y, bem como os valores de erro.
## Número de pontos de dados
n = 5
## Dados fictícios
np.random.seed(19680801)
x = np.arange(0, n, 1)
y = np.random.rand(n) * 5.
## Erros fictícios (acima e abaixo)
xerr = np.random.rand(2, n) + 0.1
yerr = np.random.rand(2, n) + 0.2
Criar Função para Caixas de Erro
Agora criaremos uma função chamada make_error_boxes que criará o patch de retângulo definido pelos limites das barras nas direções x e y.
def make_error_boxes(ax, xdata, ydata, xerror, yerror, facecolor='r',
edgecolor='none', alpha=0.5):
## Loop over data points; create box from errors at each point
errorboxes = [Rectangle((x - xe[0], y - ye[0]), xe.sum(), ye.sum())
for x, y, xe, ye in zip(xdata, ydata, xerror.T, yerror.T)]
## Create patch collection with specified colour/alpha
pc = PatchCollection(errorboxes, facecolor=facecolor, alpha=alpha,
edgecolor=edgecolor)
## Add collection to axes
ax.add_collection(pc)
## Plot errorbars
artists = ax.errorbar(xdata, ydata, xerr=xerror, yerr=yerror,
fmt='none', ecolor='k')
return artists
Criar Figura e Eixos
Agora criaremos a figura e os eixos para nosso box plot usando plt.subplots().
## Create figure and axes
fig, ax = plt.subplots(1)
Chamar Função para Criar Caixas de Erro
Agora chamaremos a função make_error_boxes() para criar as caixas de erro em nosso gráfico.
## Call function to create error boxes
_ = make_error_boxes(ax, x, y, xerr, yerr)
Exibir o Gráfico
Finalmente, exibiremos o gráfico usando plt.show().
plt.show()
Resumo
Neste laboratório, aprendemos como criar gráficos de caixa (box plots) a partir de barras de erro usando PatchCollection em Matplotlib. Ao adicionar um patch de retângulo definido pelos limites das barras nas direções x e y, fomos capazes de criar um gráfico de barras de erro mais visualmente atraente.