Criando Múltiplos Histogramas com Matplotlib

Beginner

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

Introdução

Histogramas são uma ótima maneira de visualizar a distribuição de um conjunto de dados, e Matplotlib é uma das bibliotecas Python mais populares para criar visualizações de dados. Neste laboratório, usaremos Matplotlib para criar histogramas lado a lado para múltiplos conjuntos de dados.

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 as bibliotecas necessárias

Primeiramente, precisamos importar as bibliotecas necessárias para o nosso código. Usaremos Matplotlib e NumPy para nossos histogramas:

import matplotlib.pyplot as plt
import numpy as np

Criar conjuntos de dados de exemplo

Em seguida, criaremos conjuntos de dados de exemplo para usar em nossos histogramas. Criaremos três conjuntos de dados com 387 pontos de dados cada:

np.random.seed(19680801)
number_of_data_points = 387
labels = ["A", "B", "C"]
data_sets = [np.random.normal(0, 1, number_of_data_points),
             np.random.normal(6, 1, number_of_data_points),
             np.random.normal(-3, 1, number_of_data_points)]

Calcular as quantidades para plotagem

Antes de podermos criar nossos histogramas, precisamos calcular algumas quantidades para plotagem. Calcularemos o intervalo de nossos conjuntos de dados, os conjuntos de dados binados, os valores máximos dos bins e as localizações x para cada histograma:

hist_range = (np.min(data_sets), np.max(data_sets))
number_of_bins = 20
binned_data_sets = [
    np.histogram(d, range=hist_range, bins=number_of_bins)[0]
    for d in data_sets
]
binned_maximums = np.max(binned_data_sets, axis=1)
x_locations = np.arange(0, sum(binned_maximums), np.max(binned_maximums))

Plotar os histogramas

Agora que calculamos as quantidades necessárias para a plotagem, podemos criar nossos histogramas. Usaremos o método barh para plotar barras horizontais para cada histograma:

## The bin_edges are the same for all of the histograms
bin_edges = np.linspace(hist_range[0], hist_range[1], number_of_bins + 1)
heights = np.diff(bin_edges)
centers = bin_edges[:-1] + heights / 2

## Cycle through and plot each histogram
fig, ax = plt.subplots()
for x_loc, binned_data in zip(x_locations, binned_data_sets):
    lefts = x_loc - 0.5 * binned_data
    ax.barh(centers, binned_data, height=heights, left=lefts)

ax.set_xticks(x_locations, labels)
ax.set_ylabel("Valores dos dados")
ax.set_xlabel("Conjuntos de dados")

Exibir os histogramas

Finalmente, podemos exibir nossos histogramas usando o método show:

plt.show()

Resumo

Neste laboratório, aprendemos como criar histogramas lado a lado para múltiplos conjuntos de dados usando Matplotlib. Calculamos as quantidades necessárias para a plotagem e usamos o método barh para criar barras horizontais para cada histograma. Com essas habilidades, podemos criar visualizações informativas de nossos dados para obter insights e comunicar nossas descobertas a outros.