Curso matplotlib - Gráfico de barras verticais (preenchimento das barras)
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.
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"
, "."
, "*"
.
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.
Também é possível aumentar a densidade de símbolos dentro das barras repetindo o símbolo. Por exemplo: '//'
, '\\'
, '||'
, '--'
, '++'
, 'xx'
, 'oo'
, 'OO'
, '..'
, '**'
.
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.
Ainda é possível combinar padrões, por exemplo: '/o'
, '\|'
, '|*'
, '-\\'
, '+o'
, 'x*'
, 'o-'
, 'O|'
, 'O.'
, '*-'
.
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.
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.