Criar Boxplots Personalizáveis com Matplotlib

Beginner

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

Introdução

Boxplot (Diagrama de Caixa) é uma representação gráfica de um grupo de dados através de seus quartis. Ele é usado para mostrar a distribuição dos dados com base em seu resumo de cinco números: mínimo, primeiro quartil, mediana, terceiro quartil e máximo. Neste tutorial, aprenderemos como criar e personalizar um boxplot usando a biblioteca Matplotlib em Python.

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 e gerar dados

Começamos importando as bibliotecas necessárias e gerando dados falsos.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cbook as cbook

## Generate fake data
np.random.seed(19680801)
data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75)
labels = list('ABCD')

Calcular as estatísticas do boxplot

A função boxplot_stats() do módulo matplotlib.cbook calcula as estatísticas necessárias para o boxplot. Passamos os dados e os rótulos como parâmetros.

## Compute boxplot stats
stats = cbook.boxplot_stats(data, labels=labels, bootstrap=10000)

Personalizar as estatísticas do boxplot

Podemos modificar qualquer uma das estatísticas do boxplot que foram calculadas no Passo 2. Neste exemplo, definimos a mediana de cada conjunto como a mediana de todos os dados e dobramos as médias.

for n in range(len(stats)):
    stats[n]['med'] = np.median(data)
    stats[n]['mean'] *= 2

Criar um boxplot básico

Podemos criar um boxplot básico chamando a função bxp() do Matplotlib. Passamos as estatísticas calculadas como um parâmetro.

## Create a basic boxplot
plt.bxp(stats)
plt.show()

Alternar a exibição de diferentes elementos

Podemos alternar a exibição de diferentes elementos do boxplot usando vários parâmetros na função bxp(). Neste exemplo, demonstramos como mostrar ou ocultar a média, a caixa (box), as extremidades (caps), os entalhes (notches) e os valores discrepantes (fliers).

## Toggle the display of different elements
plt.bxp(stats, showmeans=True, showbox=False, showcaps=False, shownotches=True, showfliers=False)
plt.show()

Personalizar a exibição de diferentes elementos

Podemos personalizar a exibição de diferentes elementos do boxplot usando vários parâmetros na função bxp(). Neste exemplo, demonstramos como personalizar a caixa (box), a mediana, os valores discrepantes (fliers), o ponto da média e a linha da média.

## Customize the display of different elements
boxprops = dict(linestyle='--', linewidth=3, color='darkgoldenrod')
flierprops = dict(marker='o', markerfacecolor='green', markersize=12, linestyle='none')
medianprops = dict(linestyle='-.', linewidth=2.5, color='firebrick')
meanpointprops = dict(marker='D', markeredgecolor='black', markerfacecolor='firebrick')
meanlineprops = dict(linestyle='--', linewidth=2.5, color='purple')

plt.bxp(stats, boxprops=boxprops, flierprops=flierprops, medianprops=medianprops, meanprops=meanpointprops, meanline=True, showmeans=True)
plt.show()

Resumo

Neste tutorial, aprendemos como criar e personalizar um boxplot usando a biblioteca Matplotlib em Python. Também aprendemos como alternar a exibição de diferentes elementos e personalizar sua exibição. Boxplots são uma ferramenta útil para visualizar a distribuição de dados e identificar valores discrepantes (outliers).