Olá, Carolina, tudo bem?
Gostei bastante do seu código.
Como você apontou, sugeriria pequenas alterações para evitar repetições e vou pontuar um pouco mais abaixo junto a solução de sua dúvida. A respeito do espaçamento, podemos ajustar facilmente, por exemplo, das duas formas:
Pelo parâmetro width
do método bar()
:
Nesse exemplo, apenas modificaremos o valor que você colocou de 0.2 para 0.6 o que aumentaria a largura de suas barras e reduziria essa lacuna entre elas.
Dessa forma, o seu código poderia seguir esse caminho:
fig = plt.figure(figsize=(5,4))
eixo = fig.add_axes([0, 0, 1, 1])
cores = ['steelblue', 'indianred']
# Passando sua lista para uma variável, evitando a repetição dela nos plots,
# o que garante que caso haja alguma alteração de uma das categorias ou acréscimo
# de mais algumas não seria necessário modificar em cada lugar em que elas aparecem
revestimentos = ['ZR14', 'ZR16']
# Modificando o parâmtetro width de 0.2 para 0.6, neste exemplo
eixo.bar(revestimentos, tabelaZr, color=cores, width = 0.6, align='center')
eixo.errorbar(revestimentos, tabelaZr, yerr=desvio, color='k', fmt='o', capsize=5)
eixo.set_title('Relação Zr nos dois revestimentos', fontsize = 15, pad = 7)
eixo.set_xlabel('Revestimento', fontsize = 12)
eixo.set_ylabel('%Zr', fontsize = 12)
Usando o método xticks()
da biblioteca matplotlib
.
Outra forma, que demanda um pouco mais de ajustes é usando o xticks()
que é um método que altera os intervalos do eixo x e nos dá a liberdade de definir a posição desejada das nossas barras. No seu caso, ele precisa de 2 parâmetros ticks
e labels
. Os ticks, seriam as posições dos meus valores no eixo desejado (aqui vamos usar 0 e 1) e os labels, as categorias ou variáveis que são descritas em cada posição. Nesse caso, podemos remover o parâmetro width
do bar()
já que faremos o ajuste por este outro método.
Assim, o seu código poderia seguir, também, essa outra forma:
fig = plt.figure(figsize=(5,4))
eixo = fig.add_axes([0, 0, 1, 1])
cores = ['steelblue', 'indianred']
# Listas dos revestimentos e a posição de cada um no eixo x --> 0 e 2
revestimentos = ['ZR14', 'ZR16']
x_pos = [0, 2]
# Tanto em bar(), quanto em errobar() primeiro passamos a variável x_pos que é
# responsável pela posição de cada categoria no eixo x, e os labels (revestimentos)
# só serão aplicados no xticks
eixo.bar(x_pos, tabelaZr, color=cores)
eixo.errorbar(x_pos, tabelaZr, yerr=desvio, color='k', fmt='o', capsize=5)
# Definindo a categoria correspondente (revestimentos) para cada posição (x_pos)
plt.xticks(x_pos, revestimentos)
eixo.set_title('Relação Zr nos dois revestimentos', fontsize = 15, pad = 7)
eixo.set_xlabel('Revestimento', fontsize = 12)
eixo.set_ylabel('%Zr', fontsize = 12)
Espero ter ajudado e qualquer dúvida é só chamar!
Forte abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!