logo

Gráfico de caixa em Python usando Matplotlib

O que é Box Plot?

Um Box plot é uma forma de visualizar a distribuição dos dados usando uma caixa e algumas linhas verticais. É conhecido como gráfico do bigode. Os dados podem ser distribuídos entre cinco intervalos principais, que são os seguintes:

    Mínimo: Q1-1.5*IQR1º quartil(Q1): 25º percentilMediana:50º percentil3º trimestre(Q3):percentil 75Máximo: Q3+1,5*IQR

Aqui o IQR representa o Intervalo Interquartil que começa no primeiro quartil (Q1) e termina no terceiro quartil (Q3).

Visualização Box Plot

Gráfico de caixa em Python usando Matplotlib

No box plot, os pontos que estão fora do intervalo são chamados de outliers. Podemos criar o box plot dos dados para determinar o seguinte:

  • O número de outliers em um conjunto de dados
  • Os dados estão distorcidos ou não
  • O intervalo dos dados

O intervalo dos dados do mínimo ao máximo é chamado de limite de whisker. Em Python, usaremos o módulo pyplot do módulo matplotlib, que possui uma função embutida chamada boxplot() que pode criar o box plot de qualquer conjunto de dados.

Sintaxe:

 matplotlib.pyplot.boxplot(data,notch=none,vert=none,patch_artist,widths=none) 

Na função boxplot(), temos vários atributos que podem ser usados ​​para criar um box plot mais atraente e surpreendente do conjunto de dados.

    dados: Os dados devem ser um array ou sequência de arrays que serão plotados.entalhe: este parâmetro aceita apenas valores booleanos, verdadeiros ou falsos.Verde: este atributo aceita um valor booleano. Se for definido como verdadeiro, o gráfico será vertical. Caso contrário, será horizontal.posição: Aceita o array de inteiros que define a posição da caixa.larguras: Aceita o array de inteiros que define a largura da caixa.patch_artista: este parâmetro aceita valores booleanos, verdadeiros ou falsos, e este é um parâmetro opcional.rótulos: aceita as strings que definem os rótulos para cada ponto de dadoslinha média: aceita um valor booleano e é opcional.ordem: Define a ordem do boxplot.inicialização: aceita o valor inteiro, que especifica o intervalo do boxplot entalhado.

Exemplo 1:

Criaremos o conjunto de dados aleatórios do array numpy e criaremos o box plot.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(15) dataSet = np.random.normal(100, 25, 200) print(dataSet) figure = plt.figure(figsize =(10, 8)) plt.boxplot(dataSet) plt.show() 

Saída:

Gráfico de caixa em Python usando Matplotlib

Explicação:

No código acima, em primeiro lugar, importamos as bibliotecas numpy e matplotlib no código. Em seguida, criamos o conjunto de dados aleatório e traçamos o box plot usando a função boxplot().

Exemplo2:

Podemos criar vários box plots simultaneamente no mesmo arquivo.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_axes([0, 0, 1, 1]) bp = ax.boxplot(dataSet) plt.show() 

Saída:

Gráfico de caixa em Python usando Matplotlib

Explicação:

No código acima, temos quatro conjuntos de dados usando métodos aleatórios de numpy. Em seguida, criamos a lista dos quatro conjuntos de dados e usamos isso dentro da função boxplot().

Exemplo 3:

Podemos usar alguns atributos da função boxplot() para personalizar o gráfico.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_subplot(111) bp = ax.boxplot(dataSet, patch_artist = True,notch ='True', vert = 0) colors = ['#00FF00','#0F00FF', '#F00FF0','#FFFF0F'] for patch, color in zip(bp['boxes'], colors): patch.set_facecolor(color) for whisker in bp['whiskers']: whisker.set(color ='#8E008B',linewidth = 1.4,linestyle =':') for cap in bp['caps']: cap.set(color ='#8E008B',linewidth = 2.1) for median in bp['medians']: median.set(color ='blue',linewidth = 3) for flier in bp['fliers']: flier.set(marker ='D',color ='#d7298c',alpha = 0.6) ax.set_yticklabels(['dataSet1', 'dataSet2','dataSet3', 'dataSet4']) plt.title('Customized box plot using attributes') ax.get_xaxis().tick_bottom() ax.get_yaxis().tick_left() plt.show() 

Saída:

diferença entre leão e tigre
Gráfico de caixa em Python usando Matplotlib

Explicação:

No código acima, criamos os quatro conjuntos de dados usando funções aleatórias e os colocamos em uma lista. Agora definimos as diferentes cores para cada box plot usando a lista de cores e usando a função set_facecolor().

Definimos a largura da linha de cada box plot e também definimos os rótulos para cada box plot. Definimos o atributo vert =0, o que significa que todos os gráficos estarão no modo horizontal.