1
resposta

Como posso fazer um gráfico de crescimento partir do contagio de 100 indivíduos

Como posso fazer um gráfico de crescimento partir do contagio de 100 indivíduos. De 5 países diferentes. Que alcançaram esse valor em datas diferentes e plotar de uma forma bem informativa

1 resposta

Boas Jeronimo! Tudo bem? Espero que sim!

Para resolver essa questão existem muitas formas, vou abordar uma que acho bastante eficiente, tentando usar ao máximo o que foi aprendido até agora.

Antes de tudo, vamos importar o pandas e a base de dados:

import pandas as pd
confirmed = pd.read_csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv")

Para começar , eu refiz a seleção por país:

confirmed_by_country = confirmed.groupby("Country/Region").sum()

E então, selecionei aleatoriamente 5 países para fazer a comparação:

aleatory_countries = confirmed_by_country.sample(5, random_state=151)

Nesse caso, o parâmetro random_state=151 serve para que o mesmo resultado que eu obtive posssa ser replicado.

Agora, temos como aleatory_countries o DataFrame:

Country/RegionLatLong1/22/201/23/201/24/20
Singapore1.2833103.833013
Greece39.074221.8243000
Cyprus35.126433.4299000
Armenia40.069145.0382000
Madagascar-18.766946.8691000

Agora, para facilitar nossos trabalhos, vamos fazer duas alterações nesse DataFrame, a primeira é deixar de lado latitude e longitude, assim como trabalhar com o DataFrame transposto, que tem trocando linhas e colunas:

countries_data = aleatory_countries.iloc[:,3:]
countries_data = countries_data.T
countries_data.head()

Que resulta em:

SingaporeGreeceCyprusArmeniaMadagascar
1/23/2010000
1/24/2030000
1/25/2030000
1/26/2040000
1/27/2050000

Agora, basta encontrar um período no qual todos oa países apresentem mais de 100 casos. O que eu fiz estimando valores:

countries_data.iloc[80]

Agora, sabemos que a partir da linha 80, todos os países possuem ao menos 100 casos.

Para plotar os dados num gráfico, basta realizar o plot:

fig = countries_data.iloc[:80].plot(ylim=(0,100), figsize=(25,10))

Plot de dados com valor máximo de y = 100

Passando o parâmetro ylim=(0, 100), especificamos que o gráfico deve iniciar-se em 0 casos e finalizar com 100, dando maior importância ao tempo no qual esses países alcançam essa marca.

Fiz mais algumas alterações para melhorar o gráfico depois disso:

import matplotlib.pyplot as plt
fig = countries_data.iloc[:80].plot(ylim=(0,100), figsize=(25,10))
plt.title("Quantidade de tempo até os países atingirem 100 casos")
plt.ylabel("Quantidade de casos")
plt.xlabel("Tempo")

Gráfico de infecções confimadas por tempo com um y máximmo de 100, título e títulos para os eixos

Espero ter ajudado!

Bons Estudos!