Boxplot (edições gerais)

2 minute read


Posições das caixas

Por padrão, os boxplots serão adicionados no eixo x com 1 unidade de distância entre si (range(1, N+1), onde N é o número de conjuntos). Podemos alterar esta distância através do parâmetro positions, passando uma sequência (list, tuple, ndarray, etc) com as posições de desejadas.

Por exemplo, para desenhar as caixas nas posições -1 e 1:

plt.figure(figsize=(8,6))
plt.boxplot([altura_11_anos, altura_12_anos], positions=[-1,1])
plt.show()

Figura 1 - Gráfico de boxplot para a altura das crianças de 11 e 12 anos - posição da caixa alterada.

gráfico tipo boxplot desenhado com matplotlib, com a posição da caixa alterada


Para deixar os boxplots mais próximos, basta passar valores mais próximos (0 e 0.5 por exemplo):

plt.figure(figsize=(8,6))
plt.boxplot([altura_11_anos, altura_12_anos], positions=[0,0.5])
plt.show()

Figura 2 - Gráfico de boxplot para a altura das crianças de 11 e 12 anos - posição da caixa alterada.

gráfico tipo boxplot desenhado com matplotlib, com a posição da caixa alterada


Labels

Para dar um nome para cada boxplot, passamos uma sequência (list, tuple, ndarray, etc) para o parâmetro labels, onde cada elemento deve ser uma str com o nome de cada conjunto.

Atente que os labels serão inseridos na posição de cada boxplot no eixo x, substituindo o número da posição do boxplot.

Por exemplo:

plt.figure(figsize=(8,6))
plt.boxplot([altura_11_anos, altura_12_anos], positions=[0,0.5], labels=["11 anos", "12 anos"])
plt.savefig("boxplot-03.png", dpi=100, bbox_inches='tight')
plt.show()

Figura 3 - Gráfico de boxplot para a altura das crianças de 11 e 12 anos com labels.

gráfico tipo boxplot desenhado com matplotlib, com labels


ou ainda:

nomes = ["11 anos", "12 anos"]
plt.figure(figsize=(8,6))
plt.boxplot([altura_11_anos, altura_12_anos], positions=[0,0.5], labels=nomes)
plt.show()

Figura 4 - Gráfico de boxplot para a altura das crianças de 11 e 12 anos com labels.

gráfico tipo boxplot desenhado com matplotlib, com labels


Símbolo dos outliers

Para alterar o tipo de símbolo utilizado para os outliers, basta passar a str correspondente ao símbolo desejado para o parâmetro sym. Os símbolos disponíveis são os mesmos vistos anteriormente.

Por exemplo:

plt.figure(figsize=(8,6))
plt.boxplot([altura_11_anos, altura_12_anos], positions=[0,0.5], labels=["11 anos", "12 anos"], sym="^")
plt.show()

Figura 5 - Gráfico de boxplot para a altura das crianças de 11 e 12 anos com símbolo do outliers alterado.

gráfico tipo boxplot desenhado com matplotlib, com símbolo alterado


Para esconder este símbolo, basta passar uma string vazia. Entretanto, está não é uma prática recomendada, pois o outlier tem grande relevância na interpretação do boxplot.

plt.figure(figsize=(8,6))
plt.boxplot([altura_11_anos, altura_12_anos], positions=[0,0.5], labels=["11 anos", "12 anos"], sym="")
plt.show()

Figura 6 - Gráfico de boxplot para a altura das crianças de 11 e 12 anos com outlier escondido.

gráfico tipo boxplot desenhado com matplotlib, com outlier escondido


Um outra forma de esconder os outliers é passando False para o parâmetro showfliers (padrão é True):

Por exemplo:

plt.figure(figsize=(8,6))
plt.boxplot([altura_11_anos, altura_12_anos], positions=[0,0.5], labels=["11 anos", "12 anos"], showfliers=False)
plt.show()

Figura 7 - Gráfico de boxplot para a altura das crianças de 11 e 12 anos com outlier removido.

gráfico tipo boxplot desenhado com matplotlib, com outlier removido


Espessura das caixas

Para alterar a espessura dos boxplots, basta passar um número (float ou int) ou uma sequência (list, tuple, etc) através do parâmetro widths para o plt.boxplot(). O valor padrão é o menor valor entre 0.5 e 0.15 vezes a distância entre as posições mais extremas, ou seja, varia com o número de caixas inseridas.

Por exemplo, para caixas com a mesma espessura:

plt.figure(figsize=(8,6))
plt.boxplot([altura_11_anos, altura_12_anos], positions=[0,0.5], labels=["11 anos", "12 anos"], widths=0.4)
plt.show()

Figura 8 - Gráfico de boxplot para a altura das crianças de 11 e 12 anos com espessura das caixas alterada.

gráfico tipo boxplot desenhado com matplotlib, com espessura das caixas alterada


Para personalizar a espessura de cada caixa, basta passar uma list:

plt.figure(figsize=(8,6))
plt.boxplot([altura_11_anos, altura_12_anos], positions=[0,0.5], labels=["11 anos", "12 anos"], widths=[0.4, 0.1])
plt.show()

Figura 9 - Gráfico de boxplot para a altura das crianças de 11 e 12 anos com espessura das caixas personalizada.

gráfico tipo boxplot desenhado com matplotlib, com espessura das caixas personalizada


Observe que este parâmetro altera todos os elementos do boxplot proporcionalmente.


Anterior Próximo

Updated: