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

Eixo y em notação científica

Boa noite!

Usando o pandas.plot(), o eixo y aparece em notação científica. Acredito que não atrapalhe a análise de dados, mas busquei na internet e não consegui encontrar como muda. Como faço para alterar a grandeza?

Até verifiquei o tópico criado pela Taís, porém ela tá usando Matplotlib.

confirmed_by_country.loc["China"][2:].plot()

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

4 respostas

Flávio, supondo que a sua coluna de datas está no formato mês/dia/ano (%m/%d/%y). Sendo:

  1. %m - mês
  2. % d - dia
  3. %y - ano (2 dígitos). Se eles tivessem 4 dígitos, você usaria %Y ao invés de %y

Para facilitar a manipulação, você pode definir essa coluna com o tipo datetime no momento da leitura do arquivo. Para isso, você pode usar os seguintes comandos:


import pandas as pd
from datetime import datetime
dateparse = lambda x: datetime.strptime(x, '%m/%d/%y')

df = pd.read_csv(nome_do_seu_arquivo, parse_dates=['nome_coluna_de_data'], date_parser=dateparse)

Observe que '%m/%d/%y' é o formato da data que você tem inicialmente no seu arquivo. Se não for este o formato, basta modificar essa parte no código.

Feito isto, você pode converter para o formato que deseja. Supondo que seja dia/mês/ano (com 4 dígitos) (%d/%m/%Y), basta fazer:

df['nome_coluna_de_data'] = df['nome_coluna_de_data'].dt.strftime('%d/%m/%Y')

Lembre-se que usamos %Y maiúsculo para obter os 4 dígitos.

Ao final, sua coluna de data terá o seguinte formato:

nome_coluna_de_data
22/01/2020
09/08/2021

Para plotar usando o pandas,

df.loc[2:].plot(x='nome_coluna_de_data', y='nome_coluna_de_valores')

Pode ser que você precise apenas do último passo. Caso não funcione, comente aqui como estava sua data inicialmente no dataframe.

Giulia, boa noite!

Agradeço a explicação, porém acho que tivemos uma confusão aqui... Entendo que o eixo x está em formato americano (e agradeço por me ensinar como colocar no formato usado no Brasil!), porém gostaria de mudar a grandeza dos números do eixo y. No caso, gostaria de retirar da notação científica (1e6).

Novamente, obrigado pelo seu tempo!

solução!

Flávio, bom dia!

Não sei se você já descobriu como fazer isso, mas pode servir para alguém que ache o seu questionamento no futuro. Eu fiz uma pergunta aqui no fórum ontem e no post da minha pergunta eu mostrei como solucionei essa sua questão ai. O pandas utiliza justamente o Matplotlib pra plotar gráficos e para mostrar o número real ao invés de notação científica é utilizando o Matplotlib mesmo. Segue o link:

https://cursos.alura.com.br/forum/topico-alterar-numero-de-ticks-de-uma-time-series-em-um-subplot-228984

Boa noite, eu percebi que os dados que estamos trabalhando atualmente são muito maiores eu reduzi a quantidade de dados de acordo com a data para manter igual ao do exercício. com um plt.ylim(0, 200000) consegue tirar a notação reduzindo um pouco o limite do eixo

confirmed_by_country.loc['China'][2:50].plot()