1
resposta

Personalizando o gráfico

Gostaria de deixar os marcadores (barrinhas) dos ticks no eixo x, mas sem usar linha de grid. Como faço?

Tem opção de deixar as linhas de grid apenas no eixo x?

sns.set_theme(style='dark')
sns.set_palette('Dark2')

fig, ax = plt.subplots(figsize=(10,5))
ax = sns.lineplot(data=df.loc['Argentina', anos], label = 'Argentina', lw=3)
ax = sns.lineplot(data=df.loc['Brasil', anos], label = 'Brasil', lw=3)
ax = sns.lineplot(data=df.loc['Colômbia', anos], label = 'Colômbia', lw=3)
ax = sns.lineplot(data=df.loc['Peru', anos], label = 'Peru', lw=3)

ax.set_title('Número de Imigrantes dos 4 maiores países da América do Sul \n'
             'para o Canadá de 1980 a 2013', fontsize=18, loc='left')
ax.set_xlabel('Número de Imigrantes')
ax.set_ylabel('')

ax.xaxis.set_major_locator(plt.MultipleLocator(5))
ax.legend(title='Países', loc='upper right', bbox_to_anchor=(1.18, 1.02))

plt.show()

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Paulo, tudo bem?

Para personalizar os marcadores (ticks) no eixo x sem usar as linhas de grid, você pode ajustar as propriedades dos ticks diretamente. E sim, você pode ativar as linhas de grid apenas no eixo x.

Segue o código:

import matplotlib.pyplot as plt
import seaborn as sns

sns.set_theme(style='dark')
sns.set_palette('Dark2')

fig, ax = plt.subplots(figsize=(10,5))

ax = sns.lineplot(data=df.loc['Argentina', anos], label='Argentina', lw=3)
ax = sns.lineplot(data=df.loc['Brasil', anos], label='Brasil', lw=3)
ax = sns.lineplot(data=df.loc['Colômbia', anos], label='Colômbia', lw=3)
ax = sns.lineplot(data=df.loc['Peru', anos], label='Peru', lw=3)

ax.set_title('Número de Imigrantes dos 4 maiores países da América do Sul \n'
             'para o Canadá de 1980 a 2013', fontsize=18, loc='left')
ax.set_xlabel('Número de Imigrantes')
ax.set_ylabel('')

# Personalizando os ticks do eixo x
ax.xaxis.set_major_locator(plt.MultipleLocator(5))
ax.tick_params(axis='x', which='both', length=5)

# Ativando a grid apenas no eixo x
ax.grid(True, which='major', axis='x', linestyle='--', linewidth=0.5)

ax.legend(title='Países', loc='upper right', bbox_to_anchor=(1.18, 1.02))

plt.show()

Note que, ax.tick_params() é usado para ajustar o comprimento dos ticks no eixo x, e ax.grid() é configurado para mostrar apenas as linhas de grid no eixo x.

Espero ter ajudado.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado