Boxplot (edições gerais)
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.
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.
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.
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.
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.
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.
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.
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.
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.
Observe que este parâmetro altera todos os elementos do boxplot proporcionalmente.