## Plot Gompertz model - up to end of the year # scaling factor for fixed elements on chart sf = model.gompertz$upr[198] * 1.05 / 1800 plot_au_gompertz_EOY <- ggplot(data=au_covid, aes(x=as.Date(date), y=tot2)) + xlab("") + ylab("Cumulative Local COVID-19 cases (NSW) starting June 17") + scale_x_date(date_breaks = "1 month", date_labels = "%b %d") + geom_vline(xintercept=todaydate, color = "grey") + annotate("label", x=todaydate, y=50*sf, label=au_covid$date[today], size=2) + annotate("label", x=as.Date("2021-6-20"), y=1800*sf, label="Projection of total COVID-19 cases to EOY", size=5.5, hjust=0) + annotate("text", x=as.Date("2021-6-20"), y=1700*sf, label= paste(au_covid$date[today], "@", time, "GMT+10"), hjust=0) + annotate("text", x=as.Date("2021-6-20"), y=1625*sf, label="Assumption: fitted to Gompertz growth curve", hjust=0) + geom_point(colour="grey50", size = 1) + geom_point(aes(y=tot), colour="grey20", size = 1) + geom_line(aes(y=model.gompertz$fit), colour="grey20", alpha=0.5, size = 1, linetype=2) + geom_ribbon(aes(ymin=model.gompertz$lwr, ymax=model.gompertz$upr), colour=NA, fill="blue", alpha=0.1) + annotate("label", x=todaydate, y=au_covid$tot[today], label=au_covid$tot[today], size=3) + coord_cartesian(ylim = c(0, 1800*sf), xlim = c(as.Date("2021-6-17"), as.Date("2021-12-31")) ) # scaling factor for fixed elements on chart sf = 1750 / 1800 alphaPI = 0.08 plot_au_new_gompertz_EOY <- ggplot(data=au_covid, aes(x=as.Date(date), y=new2)) + xlab("") + ylab("Daily Local COVID-19 cases (NSW)") + scale_x_date(date_breaks = "1 month", date_labels = "%b %d") + geom_vline(xintercept=todaydate, color = "grey") + geom_vline(xintercept=as.Date("2021-6-25"), color = "red", size=0.5) + annotate("text", x=as.Date("2021-6-25"), y=1400*sf, label="A ", hjust=1) + geom_vline(xintercept=as.Date("2021-7-9"), color = "red", size=0.5) + annotate("text", x=as.Date("2021-7-9"), y=1400*sf, label="B ", hjust=1) + geom_vline(xintercept=as.Date("2021-8-16"), color = "red", size=0.5) + annotate("text", x=as.Date("2021-8-16"), y=1400*sf, label="C ", hjust=1) + geom_vline(xintercept=as.Date("2021-8-23"), color = "red", size=0.5) + annotate("text", x=as.Date("2021-8-23"), y=1400*sf, label="D ", hjust=1) + geom_vline(xintercept=as.Date("2021-10-11"), color = "red", size=0.5) + annotate("text", x=as.Date("2021-10-11"), y=1400*sf, label="E ", hjust=1) + annotate("text", x=as.Date("2021-6-20"), y=900*sf, label="A (25/6): Initial lockdown", hjust=0) + annotate("text", x=as.Date("2021-6-20"), y=825*sf, label="B (9/7): Intensifies in hot LGAs", hjust=0) + annotate("text", x=as.Date("2021-6-20"), y=750*sf, label="C (16/8): NSW-wide lockdown", hjust=0) + annotate("text", x=as.Date("2021-6-20"), y=675*sf, label="D (23/8): Curfews & permits in hot LGAs", hjust=0) + annotate("text", x=as.Date("2021-6-20"), y=600*sf, label="E (11/10): Restrictions relaxed", hjust=0) + annotate("label", x=as.Date("2021-6-20"), y=1800*sf, label="Projection of new daily cases of COVID-19 to EOY", size=5.5, hjust=0) + annotate("text", x=as.Date("2021-6-20"), y=1700*sf, label= paste(au_covid$date[today], "@", time, "GMT+10"), hjust=0) + annotate("text", x=as.Date("2021-6-20"), y=1625*sf, label="Assumption: fitted to Gompertz curve", hjust=0) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv, ymax=model.gompertz.upr.deriv), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.05, ymax=model.gompertz.upr.deriv.05), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.15, ymax=model.gompertz.upr.deriv.15), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.25, ymax=model.gompertz.upr.deriv.25), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.35, ymax=model.gompertz.upr.deriv.35), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.45, ymax=model.gompertz.upr.deriv.45), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.55, ymax=model.gompertz.upr.deriv.55), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.65, ymax=model.gompertz.upr.deriv.65), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.75, ymax=model.gompertz.upr.deriv.75), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.85, ymax=model.gompertz.upr.deriv.85), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.99, ymax=model.gompertz.upr.deriv.99), fill="blue", colour=NA, alpha=0.03) + geom_point(colour="white", size = 3.2) + geom_point(colour="grey50", size = 2.8) + geom_point(aes(y=new), colour="grey20", size = 2.8) + geom_line(aes(y=model.gompertz.fit.deriv), colour="grey20", alpha=0.3, size = 1, linetype=2) + geom_line(aes(y=model.gompertz.upr.deriv), colour="grey20", alpha=0.3, linetype=2) + geom_line(aes(y=model.gompertz.lwr.deriv), colour="grey20", alpha=0.3, linetype=2) + annotate("label", x=(todaydate), y=0, label=au_covid$date[today], size=3) + coord_cartesian(ylim = c(0, 1800*sf), xlim = c(as.Date("2021-6-17"),as.Date("2021-12-31")) ) # Zoomed in # scaling factor for fixed elements on chart sf = 1000 / 1800 alphaPI = 0.08 plot_au_new_gompertz_EOY_zoom <- ggplot(data=au_covid, aes(x=as.Date(date), y=new2)) + xlab("") + ylab("Daily Local COVID-19 cases (NSW)") + scale_x_date(date_breaks = "2 weeks", date_labels = "%b %d") + geom_vline(xintercept=todaydate, color = "grey") + geom_vline(xintercept=as.Date("2021-10-11"), color = "red", size=0.5) + annotate("text", x=as.Date("2021-10-11"), y=1400*sf, label=" E (11/10): Restrictions relaxed", hjust=0) + annotate("label", x=as.Date("2021-10-2"), y=1800*sf, label="Projection of new daily cases of COVID-19 to EOY", size=5.5, hjust=0) + annotate("text", x=as.Date("2021-10-2"), y=1700*sf, label= paste(au_covid$date[today], "@", time, "GMT+10"), hjust=0) + annotate("text", x=as.Date("2021-10-2"), y=1625*sf, label="Assumption: fitted to Gompertz curve", hjust=0) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv, ymax=model.gompertz.upr.deriv), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.05, ymax=model.gompertz.upr.deriv.05), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.15, ymax=model.gompertz.upr.deriv.15), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.25, ymax=model.gompertz.upr.deriv.25), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.35, ymax=model.gompertz.upr.deriv.35), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.45, ymax=model.gompertz.upr.deriv.45), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.55, ymax=model.gompertz.upr.deriv.55), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.65, ymax=model.gompertz.upr.deriv.65), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.75, ymax=model.gompertz.upr.deriv.75), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.85, ymax=model.gompertz.upr.deriv.85), fill="blue", colour=NA, alpha=alphaPI) + geom_ribbon(aes(ymin=model.gompertz.lwr.deriv.99, ymax=model.gompertz.upr.deriv.99), fill="blue", colour=NA, alpha=0.03) + geom_point(colour="white", size = 3.2) + geom_point(colour="grey50", size = 2.8) + geom_point(aes(y=new), colour="grey20", size = 2.8) + geom_line(aes(y=model.gompertz.fit.deriv), colour="grey20", alpha=0.3, size = 1, linetype=2) + geom_line(aes(y=model.gompertz.upr.deriv), colour="grey20", alpha=0.3, linetype=2) + geom_line(aes(y=model.gompertz.lwr.deriv), colour="grey20", alpha=0.3, linetype=2) + annotate("label", x=(todaydate), y=0, label=au_covid$date[today], size=3) + coord_cartesian(ylim = c(0, 1800*sf), xlim = c(as.Date("2021-10-1"),as.Date("2021-12-31")) ) # Output charts plot_au_gompertz_EOY plot_au_new_gompertz_EOY plot_au_new_gompertz_EOY_zoom