Desenvolvido por Ycaro Afonso e publicado originalmente em http://ycaro.net/2020/03/analisando-os-dados-de-coronavirus-covid-19-no-brasil/ com objetivo de estudos para minha pós-graduação em Ciências de Dados e Big Data pela PUC Minas.
Também publiquei o código fonte do notebook do Jupyter no meu GitHub.
A partir dos dados disponibilizados na Plataforma Ivis do Ministério da Saúde, foi realizado a limpeza e conversão dos dados e platado nos gráficos.
## Import Libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
#%matplotlib inline
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
plt.rcParams['figure.figsize'] = [15, 5]
from IPython import display
from ipywidgets import interact, widgets
Brazil = pd.read_csv("./data/brasil_20200317.csv", sep=";", decimal=",", thousands=".").reset_index().set_index('Nome')
Brazil = Brazil[Brazil['Abrangência'] == 'Unidade da Federação']
Brazil.drop(['Abrangência', '% Casos suspeitos', '% Casos confirmados', '% Casos descartados', '% Óbitos'], axis=1, inplace=True)
Brazil.dtypes
TopEstados=Brazil.sort_values(by='Casos confirmados',ascending=False)
TopEstados=TopEstados[TopEstados['Casos confirmados'] > 0]
TopEstados
fig = go.Figure(go.Bar(x=TopEstados.index, y=TopEstados['Casos confirmados'],
text=TopEstados['Casos confirmados'],
textposition='outside'))
fig.update_yaxes(showticklabels=False)
fig.show()
CasosSuspeitos = Brazil[Brazil['Casos suspeitos'] > 0].sort_values(by=['Casos suspeitos'],ascending=False).reset_index(drop=True)
CasosConfirmados = Brazil[Brazil['Casos confirmados'] > 0].sort_values(by='Casos confirmados',ascending=False).reset_index(drop=True)
CasosDescartados = Brazil[Brazil['Casos descartados'] > 0].sort_values(by='Casos descartados',ascending=False).reset_index(drop=True)
Obitos = Brazil[Brazil['Óbitos'] > 0].sort_values(by='Óbitos',ascending=False).reset_index(drop=True)
chartcol='red'
fig = []
fig = make_subplots(rows=2, cols=2, shared_xaxes=True,
specs=[[{},{}],
[{},{}]],
subplot_titles=('Casos suspeitos', 'Casos confirmados', 'Casos descartados', 'Óbitos'))
fig.add_trace(go.Bar(x=CasosSuspeitos.index, y=CasosSuspeitos['Casos suspeitos'],
text=CasosSuspeitos['Casos suspeitos'],
textposition='outside'), row=1,col=1)
fig.add_trace(go.Bar(x=CasosConfirmados.index, y=CasosConfirmados['Casos confirmados'],
text=CasosConfirmados['Casos confirmados'],
textposition='outside'), row=1,col=2)
fig.add_trace(go.Bar(x=CasosDescartados.index, y=CasosDescartados['Casos descartados'],
text=CasosDescartados['Casos descartados'],
textposition='outside'), row=2,col=1)
fig.add_trace(go.Bar(x=Obitos.index, y=Obitos['Óbitos'],
text=Obitos['Óbitos'],
textposition='outside'), row=2,col=2)
fig.update_layout(showlegend=False)
import datetime
now = datetime.datetime.now()
print ("ATUALIZADO EM: " + now.strftime("%Y-%m-%d %H:%M:%S"))