Pandas при использовании matplot отображается неверный год на оси Х - PullRequest
0 голосов
/ 03 апреля 2020

На графике ось даты отображается неправильно с форматированием даты, год, который должен быть «2020» и отображается как «51». Текстовый текст Текстовый текст Текстовый текст Текстовый текст Текстовый текстовый текст Текстовый текстовый текст Текстовый текстовый текст Текстовый текстовый текст Текстовый текстовый текст Текстовый текстовый текст

# -*- 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()

enter image description here

1 Ответ

0 голосов
/ 03 апреля 2020

Я не очень опытный. Я не смог улучшить его, изменив различные настройки, насколько я знаю. Мы ответили следующим образом. для вашей информации

# 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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...