Reputation: 47
In the graph, the date axis is not being displayed correctly with date formatting, the year that should be "2020" and is displayed as "51". Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text
# -*- coding: latin-1 -*-
import pandas as pd
import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
hoje = datetime.datetime.now()
data = hoje.strftime("%Y%m%d")
dados_url = 'https://covid.saude.gov.br/assets/files/COVID19_'+data+'.csv'
try:
print(dados_url)
dados = pd.read_csv(dados_url, sep=';', parse_dates=['data'], dayfirst=True)
except Exception as e:
print("Os dados para a data corrente ainda não foram atualizados, buscando dados do dia anterior...")
print(e)
DD = datetime.timedelta(days=1)
hoje = hoje - DD
data = hoje.strftime("%Y%m%d")
print(str(hoje))
dados_url = 'https://covid.saude.gov.br/assets/files/COVID19_'+data+'.csv'
print(str(dados_url))
dados = pd.read_csv(dados_url, sep=';', parse_dates=['data'], dayfirst=True)
#pd.set_option('display.max_rows', None)
dados_alagoas = dados[dados['estado'] == 'AL']
dados_alagoas.set_index('data',inplace=True)
#print(dados_alagoas)
plt.style.use('ggplot')
fig, ax = plt.subplots(figsize=(30,15))
dados_alagoas.plot(ax=ax, rot=75)
#grafico em barras
#dados_alagoas.plot(ax=ax, rot=75, kind='bar', width=2.0)
ax.xaxis.set_major_locator(mdates.DayLocator(interval=1))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%y'))
ax.set_title('Incidência do COVID-19 em Alagoas em '+hoje.strftime('%d/%m/%Y'))
ax.set_ylabel('Ocorrências')
ax.set_xlabel('Data')
plt.show()
Upvotes: 1
Views: 647
Reputation: 35205
I'm not very experienced. I have been unable to improve it by changing various settings as far as I know. We responded in the following way. for your information
# ax.xaxis.set_major_locator(mdates.DayLocator(interval=1))
# ax.xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%y'))
ax.set_xticks(dados_alagoas.index)
ax.set_xticklabels(dados_alagoas.index.strftime('%d/%m/%y'))
Upvotes: 1