Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

[Dúvida] Eixo X não recebendo valores

Olá a todos, tive outro problema quando estava fazendo um gráfico, onde o eixo Y está ok, porém o eixo X não recebeu a informação da variável top_10.

import seaborn as sns
sns.set_theme()
top_10 = df.sort_values('Total', ascending=False).head(10) 
top_10
sns.barplot(data = top_10, x = top_10.index, y = 'Total')

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

7 respostas

Olá,

Primeiro cria a coluna de index no dataframe:

import seaborn as sns sns.set_theme() top_10 = df.sort_values('Total', ascending=False).head(10)

top_10['INDEX'] = top_10.index #CRIAÇÃO DA COLUNA

sns.barplot(data = top_10, x = 'INDEX', y = 'Total')

Eu acrescentei essa linha de código e os valores foram passados para o eixo x, porém ele não está organizado de forma decrescente como o proposto pela professora.

top_10 = df.sort_values('País', ascending=False).head(10)

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

Olá, Alison, tudo bem?

Executei o código que você compartilhou e obtive a mesma saída da instrutora. Então, é possível que o problema esteja em algum trecho de código anterior que não foi executado corretamente.

Sugiro que você compare seu código com o notebook compartilhado pela instrutora e verifique se há alguma diferença em etapas anteriores.

Além disso, recomendo que você reinicie a sessão e execute novamente o notebook seguindo estes passos:

  1. No menu de ferramentas do Google Colaboratory, clicar em "Ambientes de execução";

  2. Selecionar a opção "Reiniciar sessão e executar tudo".

Para realizar essas etapas, você pode acompanhar a imagem abaixo:

Reiniciar sessão e executar tudo, no Google Colaboratory

Caso o problema persista, peço que compartilhe o link do seu notebook. Assim poderei identificar melhor a causa do problema.

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

Abraços!

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

Utilizando o mesmo código das instrutora, o erro ainda persiste. Aqui está o link: https://colab.research.google.com/drive/1clVKzcupcxot2WIdYYOwYRGTGGBw2WLS?usp=sharing

Oi Alisson!

Seu notebook está com o link restrito. Para que eu possa acessá-lo, peço que altere as configurações para o modo leitor.

Siga estes passos para modificar o link:

  1. Abra o seu notebook no Google Colab.
  2. No canto superior direito, clique em Compartilhar.
  3. Em Acesso geral, altere a configuração para Qualquer pessoa com o link. E insira leitor
  4. Copie o novo link gerado e compartilhe comigo.

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

Fico no aguardo e à disposição
solução!

Oi Alison!

O problema ocorre porque você reimportou o dataset (df = pd.read_csv('/content/imigrantes_canada.csv')) sem manter o índice "País". Com isso, o índice do DataFrame voltou ao padrão numérico (inteiros sequenciais), o que impede que os nomes dos países apareçam corretamente no gráfico.

Note que a instrutora importa o dataset apenas uma vez, no início do notebook, e logo em seguida define "País" como índice com:

df.set_index('País', inplace=True)

Isso garante que o DataFrame seja manipulado corretamente ao longo do código.

Como corrigir?

Antes de ordenar os dados, é essencial definir o índice corretamente. Para isso, insira "País" como índice antes de fazer a ordenação:

import seaborn as sns
sns.set_theme()

# Definir "País" como índice ANTES de ordenar
df.set_index("País", inplace=True)

top_10 = df.sort_values('Total', ascending=False).head(10)

# Agora o índice contém os países corretamente
sns.barplot(data=top_10, x=top_10.index, y='Total')

✨ Dica

Notei que você importa o dataset várias vezes e reutiliza o mesmo nome de variável (df). Isso não é necessário. Uma vez carregado o dataset e as bibliotecas, você pode utilizá-los em todo o notebook sem precisar recarregá-los.

Espero ter ajudado.

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

Abraços!

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