Curso matplotlib - Gráfico de barras verticais (preenchimento das barras)

2 minute read


Além de trocar as cores das barras, podemos adicionar preenchimento a elas (texturas), de forma a diferenciar as barras de uma forma mais visual. O uso de texturas é mais adequado do que cores para publicações, embora você deva ter a simplicidade sempre em mente.

Mas antes de adicionar texturas, vamos deixar as barras sem preenchimento e aumentar o tamanho do gráfico:

plt.figure(figsize=(14,6))
plt.bar(x-2*width_bar, loja_1, label='Loja 1', width=width_bar, align='edge', color='none', edgecolor='k')
plt.bar(x-width_bar, loja_2, label='Loja 2', width=width_bar, align='edge', color='none', edgecolor='k')
plt.bar(x+width_bar, loja_3, label='Loja 3', width=-width_bar, align='edge', color='none', edgecolor='k')
plt.bar(x+2*width_bar, loja_4, label='Loja 4', width=-width_bar, align='edge', color='none', edgecolor='k')
plt.legend(prop={'size': 16})
plt.xticks(x, frutas)
plt.show()

Figura 1 - Gráfico de barras verticais agrupado.

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


Para adicionar estas texturas (os hatchs) nas barras, precisamos passar e estilo desejado através do parâmetro hatch em plt.bar(). Você encontra maiores informações na documentação.

As opções de hatchs são: "/", "\", "|" , "-", "+", "x", "o", "O", ".", "*".

Resultado de cada símbolo utilizado como hatch

Fonte: www.matplotlib.org


Por exemplo:

plt.figure(figsize=(14,6))
plt.bar(x-2*width_bar, loja_1, label='Loja 1', width=width_bar, align='edge', color='none', edgecolor='k', hatch='/')
plt.bar(x-width_bar, loja_2, label='Loja 2', width=width_bar, align='edge', color='none', edgecolor='k', hatch='X')
plt.bar(x+width_bar, loja_3, label='Loja 3', width=-width_bar, align='edge', color='none', edgecolor='k', hatch='O')
plt.bar(x+2*width_bar, loja_4, label='Loja 4', width=-width_bar, align='edge', color='none', edgecolor='k', hatch='*')
plt.legend(prop={'size': 16})
plt.xticks(x, frutas)
plt.show()

Figura 2 - Gráfico de barras verticais com barras estilizadas.

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


Também é possível aumentar a densidade de símbolos dentro das barras repetindo o símbolo. Por exemplo: '//', '\\', '||', '--', '++', 'xx', 'oo', 'OO', '..', '**'.

Resultado de cada símbolo duplicado utilizado como hatch

Fonte: www.matplotlib.org


Exemplo:

plt.figure(figsize=(14,6))
plt.bar(x-2*width_bar, loja_1, label='Loja 1', width=width_bar, align='edge', color='none', edgecolor='k', hatch='//')
plt.bar(x-width_bar, loja_2, label='Loja 2', width=width_bar, align='edge', color='none', edgecolor='k', hatch='XX')
plt.bar(x+width_bar, loja_3, label='Loja 3', width=-width_bar, align='edge', color='none', edgecolor='k', hatch='OO')
plt.bar(x+2*width_bar, loja_4, label='Loja 4', width=-width_bar, align='edge', color='none', edgecolor='k', hatch='**')
plt.legend(prop={'size': 16})
plt.xticks(x, frutas)
plt.show()

Figura 3 - Gráfico de barras verticais com barras estilizadas.

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


Ainda é possível combinar padrões, por exemplo: '/o', '\|', '|*', '-\\', '+o', 'x*', 'o-', 'O|', 'O.', '*-'.

Resultado de cada combinações de símbolos utilizados como hatch

Fonte: www.matplotlib.org


Por exemplo:

plt.figure(figsize=(14,6))
plt.bar(x-2*width_bar, loja_1, label='Loja 1', width=width_bar, align='edge', color='none', edgecolor='k', hatch='/o')
plt.bar(x-width_bar, loja_2, label='Loja 2', width=width_bar, align='edge', color='none', edgecolor='k', hatch='X*')
plt.bar(x+width_bar, loja_3, label='Loja 3', width=-width_bar, align='edge', color='none', edgecolor='k', hatch='O|')
plt.bar(x+2*width_bar, loja_4, label='Loja 4', width=-width_bar, align='edge', color='none', edgecolor='k', hatch='*-')
plt.legend(prop={'size': 16})
plt.xticks(x, frutas)
plt.show()

Figura 4 - Gráfico de barras verticais com barras estilizadas.

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


Com todas estas combinações, temos infinitas possibilidades para utilizar como texturas. Entretanto, a simplicidade é sempre recomendada, e então utilizar os símbolos simples como '/', '\', '-', 'x', '+', 'O' é geralmente uma melhor escolha.


Qual é o parâmetro que deve ser passado em plt.bar() para alterar o estilo das barras?

style

hatch

hath


Anterior Próximo

Updated: