Curso matplotlib - Gráfico de barras verticais (Edição das barras)

2 minute read


Espessura da barra

Para alterar a espessura das barras, é necessário passar o parâmetro width. Este parâmetro pode receber um único valor (float ou int) ou uma list contendo os valores especificados de espessura para cada coluna (o valor padrão é 0.8).

Por exemplo, para alterar a espessura de cada barra para 0.5:

plt.figure(figsize=(8,6))
plt.bar(frutas, precos, width = 0.5)
plt.show()

Figura 1 - Gráfico de barras verticais com barras mais finas (que o padrão).

gráfico de barras verticais desenhado com o **matplotlib**.


Para alterar a espessura das barras individualmente, basta passar uma list da seguinte forma:

espessuras = [0.5, 1.0, 0.8, 0.3, 0.2]
plt.figure(figsize=(8,6))
plt.bar(frutas, precos, width=espessuras)
plt.show()

Figura 2 - Gráfico de barras verticais com barras de espessura variada.

gráfico de barras verticais desenhado com o matplotlib.


Alinhamento das barras

Podemos alterar o alinhamento das barras, ou seja, a posição em relação ao tick de cada barra, o que é feito através do parâmetro align. Este parâmetro recebe uma str que pode ser:

  • 'center': alinha de acordo com as posições de x (padrão);

ou

  • 'edge': alinha aos limites esquerdos em relação as posições x;

Por exemplo:

espessuras = [0.5, .7, 0.8, 0.3, 0.2]
plt.figure(figsize=(8,6))
plt.bar(frutas, precos, width=espessuras, align='edge')
plt.show()

Figura 3 - Gráfico de barras verticais com alinhamento à direita.

gráfico de barras verticais desenhado com o matplotlib.


Para alinhar à esquerda, basta passar um valor negativo para o parâmetro width. Por exemplo:

espessuras = [0.5, .7, 0.8, 0.3, -0.2]
plt.figure(figsize=(8,6))
plt.bar(frutas, precos, width=espessuras, align='edge')
plt.show()

Figura 4 - Gráfico de barras verticais com o último elemento alinhado à esquerda.

gráfico de barras verticais desenhado com o matplotlib.


Observe que a última barra ('Mamão Formosa') ficou alinhada à esquerda do tick, enquanto que as demais colunas seguem à direita do tick.

Posição inicial da barra em relação ao eixo y

Podemos alterar a posição onde a barra começa no eixo y através do parâmetro bottom, que recebe um número (int ou float) ou uma sequência (list, tuple, ndarray, etc).

Por exemplo, para alterar todas as barras igualmente, iniciando em 2:

espessuras = [0.5, .7, 0.8, 0.3, -0.2]
plt.figure(figsize=(8,6))
plt.bar(frutas, precos, width=espessuras, align='edge', bottom=2)
plt.show()

Figura 5 - Gráfico de barras verticais com o as barras iniciando em y = 2.

gráfico de barras verticais desenhado com o matplotlib.


Para alterar a posição de início de cada barra individualmente precisamos passar uma list contendo os valores desejados. Por exemplo:

espessuras = [0.5, .7, 0.8, 0.3, -0.2]
inicio = [0, 1, 2, 3, 4,]
plt.figure(figsize=(8,6))
plt.bar(frutas, precos, width=espessuras, align='edge', bottom=inicio)
plt.show()

Figura 6 - Gráfico de barras verticais com o as barras iniciando em posições variadas de y.

gráfico de barras verticais desenhado com o matplotlib.


Como desenhar a barra à esquerda do tick em plt.bar()?

Passando o parâmetro left=True.

Passando o parâmetro align='edge'.

Passando o parâmetro align='left' e passando um valor de espessura negativa para o parâmetro width.

Passando o parâmetro align='edge' e passando um valor de espessura negativa para o parâmetro width.


Anterior Próximo

Updated: