Covid Tracking
View COVID-19 Trends
Load libraries and Data
library(covid19.analytics)
library(data.table)
library(sqldf)
library(plotly)
library(openair)
## https://cran.r-project.org/web/packages/covid19.analytics/vignettes/covid19.analytics.html
##https://www.kaggle.com/modesty520/covid-19-detailed-visualization
iuh_colors <- c("#990000", "#EEEDEB","#01426A")
covid_data <- covid19.US.data()
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## --------------------------------------------------------------------------------
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## --------------------------------------------------------------------------------
indiana <- subset(covid_data, Province_State == 'Indiana')
arkansas <- subset(covid_data, Province_State == 'Arkansas')
setDT(indiana)
indiana_long <- melt(indiana, id.var = c("Country_Region", "Province_State",
"Lat", "Long_"))
indiana_summary <- sqldf("select variable as date, sum(value) as cases
from indiana_long
group by variable")
setDT(indiana_summary)
indiana_summary[ , new := cases - shift(cases)]
in_plot <- plot_ly(indiana_summary, x = ~date, y = ~cases,
type = 'scatter',
mode = 'lines',
colors=iuh_colors,
hoverinfo='text',
text = ~paste('</br> Date: ', date,
'</br> Cases: ' , prettyNum(cases, big.mark=",",scientific=FALSE))
)
in_plot_new <- plot_ly(indiana_summary, x = ~date, y = ~new,
type = 'bar',
colors=iuh_colors,
hoverinfo='text',
text = ~paste('</br> Date: ', date,
'</br> Cases: ' , prettyNum(new, big.mark=",",scientific=FALSE),
'</br> Cumulative: ', prettyNum(cases, big.mark=",",scientific=FALSE))
)
Cumulative Cases:
This is helpful to get a quick overview of cases over time. You can really see the growth taking off in October.
in_plot <- plot_ly(indiana_summary, x = ~date, y = ~cases,
type = 'scatter',
mode = 'lines',
fill='tozeroy',
hoverinfo='text',
line = list(color=iuh_colors[1]),
fillcolor = list(color=iuh_colors[1]),
text = ~paste('</br> Date: ', date,
'</br> Cases: ' , prettyNum(cases, big.mark=",",scientific=FALSE))
) %>% layout(title = 'Cumulative Covid Cases (Indiana)', xaxis=list(autotick=F, dtick=30))
in_plot
in_plot_new <- plot_ly(indiana_summary, x = ~date, y = ~new,
type = 'bar',
marker = list(color=iuh_colors[1]),
hoverinfo='text',
text = ~paste('</br> Date: ', date,
'</br> Cases: ' , prettyNum(new, big.mark=",",scientific=FALSE))
) %>% layout(title = 'New Covid Cases (Indiana)', xaxis=list(autotick=F, dtick=30))
in_plot_new
New Cases - Calendar View
I find this view very intuitive. As plotted here, each year is on it’s own plot and therefore has it’s own scale.
date <- seq(from=as.Date(min(indiana_summary$date)),
by=1,
to = as.Date(max(indiana_summary$date)))
in_new <- indiana_summary[,"new"]
cal_plot <- calendarPlot(data.frame(in_new, date), pollutant = 'new', year = 2020, main = "New Cases - 2020")
cal_plot <- calendarPlot(data.frame(in_new, date), pollutant = 'new', year = 2021, main = "New Cases - 2021")
cal_plot <- calendarPlot(data.frame(in_new, date), pollutant = 'new', year = 2022, main = "New Cases - 2022")