File:Suomen koronavirusepidemia ennuste forecast 1.svg

Original file(SVG file, nominally 720 × 450 pixels, file size: 74 KB)

Captions

Captions

Add a one-line explanation of what this file represents

Summary

edit
Description
Suomi: Suomen koronavirusepidemia ennuste , forecast-algoritmilla
Date
Source Own work
Author Merikanto

    1. calculate forecast of covid-19 daily cases
    2. "r" script using forecast
    3. warning: not exatcly epidemic, pure mathematic model to forecast
    4. 14.4.2022
    5. v 0000.0005
  1. install.packages("rvest")
  2. install.packages("readtext")
  3. install.packages("stringi")
  4. install.packages("datamart")
  5. install.packages("XML")
  6. install.packages("svglite")
  7. install.packages("ggplot2")
  8. install.packages("tidyr")
  9. install.packages("stringr")
  10. install.packages("stringi")
  11. install.packages("tibble")
  1. Sys.setlocale("LC_ALL","Finnish")
  2. options(encoding = "UTF-8")
  3. Sys.setlocale("LC_ALL","fi_FI.UTF-8")
  1. Sys.setlocale("sv_SE.UTF-8/sv_SE.UTF-8/sv_SE.UTF-8/C/sv_SE.UTF-8/sv_SE.UTF-8")

library(ggplot2) library(svglite)

library(rvest) library(readtext) library(stringi) library(stringr) library(datamart) library(XML)

library(tibble) library(caTools) library(mgcv) library(repmis) library(lubridate) library(tidyverse) library(tidyr) library(dplyr) library(data.table) library(jsonlite) library(rjstat)

  1. library(covid19.analytics)

library(R0) library(EpiEstim)

  1. library(prophet)

library(forecast) library(tseries)

    1. choices
    2. 1 finnish wiki data, 2 aggregated cases data
    3. 3 solanpaa finnish data 4 thl cube json data

load_data_from=3

yala=0 yyla=15000

  1. beginday1='01/01/2021'
  2. beginday1='01/05/2020'

beginday1='24/11/2021'

  1. beginday1='01/07/2021'
  1. beginday1='01/11/2020'

showbeginday1='24/03/2022'


forecastendday1<-"2022/08/01"

    1. 1 from finnish wiki, 2 cases from net, 3 from net 2

plottaa=1 ## must be 1 tulosta_svg=1 # plot to out svg 0, 1 of 2

tulosfilee1="./Suomen koronavirusepidemia ennuste forecast 1.svg"

    1. ggolot smooth curves pars
  1. spanni=0.1

spanni=0.2

  1. spanni=0.5


metodi="loess"

    1. NOTE date limits change this
  1. datelimits1=c('1/3/2020', '9/11/2020')
    1. display date limits

today=Sys.Date()-14

yesterday=today-1


print(yesterday)

  1. stop(-1)
  1. today1=yesterday

today=yesterday

  1. print(today)

today1=format(today, "%d/%m/%Y") today2=format(today, "%Y/%m/%d")

  1. print(today1)
  2. print(today2)
  1. stop(-1)

datelimits1<-c(beginday1, today1) showdatelimits1<-c(showbeginday1, forecastendday1)

    1. dates of dataset
  1. stop(-1)
  1. pv11=as.Date("2020/04/01", "%Y/%m/%d")
  2. pv11<-as.Date("2020/04/01", "%Y/%m/%d")

pv11 <- as.Date("2020/04/01", "%Y/%m/%d")


pv12<-as.Date(today2)

paivat1<- seq(pv11 , pv12, "days" )


calculate_r0 <- function(time1, time2, val1, val2) { td=time2-time1 gr0<-log(val2/val1) gr=gr0/td td = log(2)/gr tau<-5.0 k<-log(2.0)/td r0<-exp(k*tau) return(r0) }


moving_average <- function(x, w, FUN, ...) {

 if (w < 1) {
   stop("Window length: mustbe greater than 0")
 }
 output <- x
 for (i in 1:length(x)) {
   lower_bound <- i - w + 1
   if (lower_bound < 1) {
     output[i] <- NA_real_
     ## !!! assume NA 0
     output[i] <- 0
   } else {
     output[i] <- FUN(x[lower_bound:i, ...])
   }
 }
 return (output)

}

calculate_multiple_r0 <- function(daata1) {

 lenu1<-length(daata1)
  
 daata2<-1:lenu1
 

for (n in 2:lenu1){ valju1=daata1[n-1] valju2=daata1[n] timex1=0 timex2=1

r0<-calculate_r0(0, 1, valju1, valju2) daata2[n]<-r0

#print (r0) } return(daata2)

}


load_data_from_finnish_wiki<-function() {

url1="https://fi.wikipedia.org/wiki/Suomen_koronaviruspandemian_aikajana" destfile1="./ward0.txt"

download.file(url1, destfile1) texti000<-readtext(destfile1) texti0<-texti000$text

etsittava1="1. huhtikuuta 2020 alkaen" len1=nchar(texti0) k1=regexpr(pattern=etsittava1, texti0) k1b=len1-k1 texti1=strtail(texti0,k1b) sink("out1.txt") print (texti1) sink()

etsittava2=""

k2=regexpr(pattern=etsittava2, texti1) texti2=strhead(texti1,k2)

sample1<-minimal_html(texti2) tabu1 <- html_table(sample1, fill=TRUE)1 colnames(tabu1) <- c("V1","V2", "V3","V4", "V5","V6", "V7","V8" )

  1. print(tabu1)

sairaalassa00<-tabu1$V4 sairaalassa=as.integer(sairaalassa00)

teholla00<-tabu1$V5 teholla=as.integer(teholla00)

uusiatapauksia00<-tabu1$V3 uusiatapauksia0<-gsub(" ", "", uusiatapauksia00) uusia_tapauksia=as.integer(uusiatapauksia0)

uusiakuolleita00<-tabu1$V7 uusiakuolleita1=as.integer(uusiakuolleita00)

uusiakuolleita2<-uusiakuolleita1 uusiakuolleita2[uusiakuolleita2<0]<-0 uusia_kuolleita<-uusiakuolleita2

toipuneita00<-tabu1$V8 toipuneita01<-gsub(" ", "", toipuneita00) toipuneita0<-gsub("[^0-9.-]", "", toipuneita01) toipuneita=as.integer(toipuneita0)

tapauksia00<-tabu1$V2 tapauksia01<-gsub(" ", "", tapauksia00) tapauksia0<-gsub("[^0-9.-]", "", tapauksia01)

tapauksia=as.integer(tapauksia0)

kuolleita00<-tabu1$V6 kuolleita=as.integer(kuolleita00)


aktiivisia_tapauksia=tapauksia-kuolleita-toipuneita


  1. print (paivat1)
  2. print (teholla)
  3. print (sairaalassa)
  4. print (tapauksia)
  5. print (kuolleita)
  6. print (toipuneita)
  7. print (uusia_tapauksia)
  8. print (uusia_kuolleita)
  9. plot(paivat1,aktiivisia_tapauksia)


  1. xy<-data.frame(paivat1, sairaalassa)

xy<-data.frame(paivat1, uusia_tapauksia)

xyz<-data.frame(paivat1, sairaalassa, teholla) dfout1<-data.frame(paivat1, aktiivisia_tapauksia, uusia_tapauksia, sairaalassa, teholla, uusia_kuolleita )

names(dfout1)<-c("Pvm", "Aktiivisia_tapauksia","Uusia_tapauksia", "Sairaalassa", "Teholla", "Uusia_kuolleita")

write.csv2(dfout1, "./sairaalassa.csv",row.names=FALSE )

return(xy) }


load_data_from_aggregated<-function() {

    1. fetch the data

dfine <- read.csv(file = 'https://datahub.io/core/covid-19/r/countries-aggregated.csv')

  1. head(dfine)
  2. class(dfine)
  1. tail(dfine, 5)

dfinland <- dfine[ which(dfine$Country=='Finland'), ]

  1. head(dfinland)

kols <- c("Date", "Confirmed","Recovered","Deaths")

tapaukset <- dfinland[kols]

  1. head(tapaukset)

len1=nrow(tapaukset)

  1. len1

len2=len1-1

len3=len2

confirmed<-tapaukset$Confirmed deaths<-tapaukset$Deaths

dailycases <- vector() dailycases <- c(dailycases, 0:(len2)) dailydeaths <- vector() dailydeaths <- c(dailydeaths, 0:(len2))

m=0 dailycases[1]<-tapaukset$Confirmed[1]

  1. dailydeaths[1]<-tapaukset$Deaths[1]

dailydeaths[1]<-0

  1. confirmed
  2. deaths

m=1 for(n in 2:(len3+1)) {

a<-confirmed[n] b<-confirmed[m] #print (a) #print (b) cee<- (a-b) #print(cee) dailycases[n]=cee m=m+1 }

mm=1 for(nn in 2:(len3+1)) {

aa<-deaths[nn] bb<-deaths[mm] #print ("_") #print (aa) #print (bb) ceb=aa-bb #if (ceb<0) ceb=0 #print(ceb) dailydeaths[nn]=ceb mm=mm+1 }

  1. deaths
  1. dailycases
  1. dailydeaths

dfout1<-dfinland

  1. print(nrow(dfinland))
  2. print(length(dailydeaths))

dfout1 <- cbind(dfout1, data.frame(dailycases)) dfout1 <- cbind(dfout1, data.frame(dailydeaths))

  1. head(dfout1)

dfout2<-within(dfout1, rm(Country))

names(dfout2) <- c('Date','Confirmed','Recovered','Deaths', 'DailyConfirmed','DailyDeaths')

  1. head(dfout2)

write.csv2(dfout2, "/Users/himot/akor1/finland_data1.csv");

daate1<-dfout2$Date dailydeaths1<-dfout2$DailyDeaths dailycases1<-dailycases

  1. daate1
  1. daate2<-gsub("2020-", "", daate1)

daate2<-daate1

leenu<-length(daate2)

  1. alkupvm<-50

alkupvm<-1

daate3<-daate2[alkupvm:leenu] dailydeaths3<-dailydeaths1[alkupvm:leenu] dailycases3<-dailycases1[alkupvm:leenu]

  1. daate3
  2. dailydeaths3


# barplot(dailydeaths3, main="Koronaviruskuolemat päivittäin vuonna 2020",
# names.arg=daate3) 
 
     
 dataf1 <- data.frame("Date" = daate3, "Paivitt_kuolemat"=dailydeaths3)
  1. str(dataf1)
  dataf2 <- data.frame("Date" = daate3, "Paivitt_tapaukset"=dailycases3)
  1. str(dataf2)
write.csv(dataf1, "/Users/himot/akor1/dailydeaths1.csv", row.names=T)
write.csv(dataf2, "/Users/himot/akor1/dailycases1.csv", row.names=T)
indf1 <- read.csv(file = '/Users/himot/akor1/dailycases1.csv')
#head(indf1)
cases1<-indf1$Paivitt_tapaukset
dates1<-indf1$Date
len1=length(cases1)
dates2<-as.Date(dates1)
paivat<-1:len1	

xy<-data.frame(daate3, dailycases3)

}



calculate_r0_with_r0<-function(xy2) {

## calculate r0 w/r0 package dates<-as.Date(xy2$Dates) cases<-as.integer(xy2$Cases)

cases[is.na(cases)] <- 1 cases[(cases<0)] <- cases*-1 cases[cases==0] <- 1

nummeros<-1:length(dates) num<-cases #names<-nummeros names<-dates lenu=length(dates)

bekini=as.Date(dates[1]) enti=as.Date(dates[lenu])

#print(bekini) #print(enti)

#stop(-1)

#enti=lenu

#bekini=enti*0+1

#enti=as.integer(enti) #bekini=as.integer(bekini)


df1 <- setNames(num, names)

mGT<-generation.time("gamma", c(3, 1.5)) #TD <- est.R0.TD(df1, mGT, begin=1, end=length(dates), nsim=200) #TD <- est.R0.TD(df1, mGT, begin=bekini, end=enti, nsim=200) TD <- est.R0.TD(df1, mGT, begin=bekini, end=enti, nsim=200) TD.5D <- smooth.Rt(TD, 5) paivat1<-TD.5D$epid$t paivat2<-as.Date(paivat1) r0t1<-TD.5D$R conf1<-TD.5D$conf.int

xypaluu<-data.frame(paivat1,r0t1) names(xypaluu)<-c("paivat","r0") return(xypaluu) }


calculate_r0_with_epiestim<-function(xy2) {

## calculate r0 w/r0 package dates<-as.Date(xy2$Dates) cases<-as.integer(xy2$Cases) nummeros<-1:length(dates) num<-cases #names<-nummeros names<-dates lenu=length(dates)

cases[is.na(cases)] <- 1 cases[(cases<0)] <- cases*-1 cases[cases==0] <- 1

incid<-cases

bekini=as.Date(dates[1]) enti=as.Date(dates[lenu])

config<-make_config( list(mean_si = 2.6,std_si = 1.5) )

res<-estimate_R(incid,method="parametric_si", config = config)

#plot(res) resr<-res$R

str(resr)

meanr<-resr$Mean medianr<-resr$Median quantile95<-resr$Quantile.0.95 quantile05<-resr$Quantile.0.05 quantile75<-resr$Quantile.0.75 quantile25<-resr$Quantile.0.25 meanr

daydexes<-resr$t_start

daydexes


#plot(daydexes, meanr)

dayss<-as.Date(dates[daydexes])

print (dayss) #stop(-1) #plot(dayss, meanr)

xypaluu<-data.frame(dayss,meanr) names(xypaluu)<-c("paivat","r0") return(xypaluu) }


calculate_r0_with_simple_exponent_moving_average<-function(xy2, madays1, madays2) {

## calculate r0 w/r0 package dates<-as.Date(xy2$Dates) cases<-as.integer(xy2$Cases) nummeros<-1:length(dates) num<-cases #names<-nummeros names<-dates lenu=length(dates)

cases[is.na(cases)] <- 1 cases[(cases<0)] <- cases*-1 cases[cases==0] <- 1

# compute a MA(7) ma1<-moving_average(cases,madays1,mean) r0t1<-calculate_multiple_r0(ma1) r0avg1<-moving_average(r0t1, madays2, mean) xypaluu<-data.frame(dates,r0t1)

#plot(r0t1) #print (r0t1) #stop(-1)

names(xypaluu)<-c("paivat","r0")

return(xypaluu)

}


forecast_profet<-function(xy2, futuredays) { ## calculate r0 w/r0 package ds<-as.Date(xy2$Dates) y<-as.integer(xy2$Cases) nummeros<-1:length(ds)

lenu=length(ds)


df<-data.frame(ds,y)


m <- prophet(df)

future <- make_future_dataframe(m, periods = futuredays)

forecast <- predict(m, future)


   #str(future)
   #str(forecast)
   
   futu_days=future$ds
   futu_trendi=forecast$trend
   futu_trendi_upper=forecast$trend_upper
   futu_trendi_lower=forecast$trend_lower
   futu_yhat=forecast$yhat
   futu_yhat_upper=forecast$yhat_upper
   futu_yhat_lower=forecast$yhat_lower
   futu_weekly=forecast$weekly
   futu_weekly_upper=forecast$weekly_upper
   futu_weekly_lower=forecast$weekly_lower
   
   xypaluu<-data.frame(as.Date(futu_days),futu_yhat)

# xypaluu<-data.frame(as.Date(futu_days),futu_weekly) #plot(r0t1) #print (r0t1) #stop(-1)

names(xypaluu)<-c("paivat","r0") return(xypaluu)

}

lataa_thl_tapaukset_kuolleet<-function() {

   url1<-"https://sampo.thl.fi/pivot/prod/fi/epirapo/covid19case/fact_epirapo_covid19case.json?row=measure-492118&column=dateweek20200101-508804L"

cube1 <- fromJSONstat(url1, naming = "label", use_factors = F, silent = T) res01 <- cube11 #res00 url2<-"https://sampo.thl.fi/pivot/prod/fi/epirapo/covid19case/fact_epirapo_covid19case.json?row=measure-444833&column=dateweek20200101-508804L" cube2 <- fromJSONstat(url2, naming = "label", use_factors = F, silent = T) res02 <- cube21 #res02

#stop (-1) paiva=as.Date(res01$dateweek20200101) kuolleet=as.integer(res01$value) tapaukset=as.integer(res02$value)

kuolin_prosentit=kuolleet/tapaukset kuolin_prosentit=kuolin_prosentit*10000 kuolin_prosentit=as.integer(kuolin_prosentit) kuolin_prosentit=as.double(kuolin_prosentit) kuolin_prosentit=kuolin_prosentit/100.0

#print (paiva) #print (kuolleet) #stop(-1) #print (tapaukset) #print (kuolin_prosentit )

df1<-data.frame(paiva,tapaukset, kuolleet, kuolin_prosentit)

names(df1)<-c("Paiva", "Tapauksia", "Kuolleita", "Kuolinprosentti") #write.csv2(df1, "./kuolleet_ikaryhmittain.csv", sep = ";" )

write.csv(df1, "./thl_tapaukset_kuolleet.csv")

xy0<-data.frame(paiva, tapaukset) names(xy0)<-c("Dates", "Cases") xy<-na.omit(xy0)

#return(df1)


}


download_solanpaa_finnish_data<-function() { solanpaa_fi="https://covid19.solanpaa.fi/data/fin_cases.json" cache_file="solanpaa_fi.json"

download.file(solanpaa_fi, cache_file)

j1 <- fromJSON(cache_file)

 ## maybe errori

dates<-as.Date(j1$date)

dailycases<-j1$new_cases dailydeaths<-j1$new_deaths

   dataf1 <- data.frame("Date" = dates, "Paivitt_kuolemat"=dailydeaths) 
   dataf2 <- data.frame("Date" = dates, "Paivitt_tapaukset"=dailycases)

write.csv(dataf1, "./dailydeaths1.csv", row.names=T) write.csv(dataf2, "./dailycases1.csv", row.names=T)

xy0<-data.frame(dates, dailycases) names(xy0)<-c("Dates", "Cases") xy<-na.omit(xy0)

return(xy)

}



if(load_data_from==1) { xy<-load_data_from_finnish_wiki() print (xy) }

if(load_data_from==2) { xy<-load_data_from_aggregated() }

if(load_data_from==3) { xy<-download_solanpaa_finnish_data() }

if(load_data_from==4) { xy<-lataa_thl_tapaukset_kuolleet() }




names(xy)<-c("Dates","Cases")


#print (xy)
#print (beginday1)
    1. select_datelimit_begin=as.Date(beginday1,format="%d/%m/%Y")
  1. select_datelimit_end=as.Date(today1, )


select_datelimit_begin=as.Date(beginday1,format="%d/%m/%Y")
select_datelimit_end=as.Date(today1,format="%d/%m/%Y" )
print( select_datelimit_begin)
print( select_datelimit_end )

#stop(-1)

xy2a<-xy[xy$Dates >= select_datelimit_begin, ]

xy2<-xy2a[ xy2a$Dates <= select_datelimit_end,]


print(xy2)
## stop(-1)
cases1<-xy2$Cases
dates1<-xy2$Dates

xy3<-data.frame( as.Date(dates1),as.integer(cases1) )
names(xy3)<-c("Dates", "Cases")
len1=length(cases1)
dates2<-as.Date(dates1)
paivat<-1:len1


## test code
arrat0<-calculate_r0_with_simple_exponent_moving_average(xy2, 14,7)

arrat1<-calculate_r0_with_r0(xy2)
arrat2<-calculate_r0_with_epiestim(xy2)

 #plot(arrat$paivat, arrat$r0)
 arrat<-arrat2
  

#str(arrat)
#head(arrat)


 sarrat1<-arrat1
 sarrat2<-sarrat1
 names(sarrat1)<-c("Dates","Cases")
  


 datelimits2=c(today1, as.Date(forecastendday1,"%Y/%m/%d"))
 datelimits3=c(as.Date(beginday1, "%d/%m/%Y" ), as.Date(forecastendday1,"%Y/%m/%d"))
 daysek1<-seq(today, as.Date(forecastendday1), "days")
 lendaysek1<-length(daysek1)
 daysek2<-seq(as.Date(beginday1),as.Date(forecastendday1), "days")
 daysek3<-seq(as.Date(beginday1),as.Date(forecastendday1), "days")
 #farrat1<-forecast_profet(xy2, lendaysek1)
 

 print(lendaysek1)
 #stop(-1)
 
  1. forecastlen1<-20

y<-xy3$Cases

#md = rwf(y,h=forecastlen1,drift=T,level=c(90,95),fan=FALSE,lambda=NULL) md = rwf(y,h=lendaysek1,drift=T,level=c(30,40),fan=FALSE,lambda=NULL)


str(md)

fitted1<-md$fitted mean1<-md$mean lower1<-md$lower[,1] upper1<-md$upper[,1]

#plot(fitted1) plot(mean1) lines(lower1)

lines(upper1)

#stop(-1)

plot(md)

dif_data <- diff(y)

arima1<-auto.arima(dif_data) foca1<-forecast(arima1)

str(foca1)

plot(foca1)

foca1_fitted1<-foca1$fitted foca1_mean1<-foca1$mean foca1_lower1<-foca1$lower[,1] foca1_upper1<-foca1$upper[,1]

plot(foca1_mean1) lines(foca1_lower1) lines(foca1_upper1)

#mdarima1_fitted1<-focal_fitted1 mdarima1_mean1<-mean1 mdarima1_lower1<-lower1 mdarima1_upper1<-upper1

#fit1 <- stl(y, s.window="periodic",t.window=length(y) ) #fit1 <- stl(y ) #arima <- forecast(fit1,h=lendaysek1,method ='arima')

#fit = arima(y, c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 7))

#fit = arima(y, c(0, 1,1), seasonal = list(order = c(0, 1,1), period = 7))

fit = arima(y, c(0, 1,1), seasonal = list(order = c(0, 1,1), period = lendaysek1))

pred <- predict(fit, n.ahead = lendaysek1)

mdarima1_pred<-pred$pred mdarima1_se<-pred$pred #mdarima1_pred<-pred$se #mdarima_mean1<-arima$mean

bat1 <- tbats(y) fc2 <- forecast(bat1, h=lendaysek1) plot(fc2, ylab="Tapauksia")

sensor <- ts(y,frequency=7) # consider adding a start so you get nicer labelling on your chart. fit <- auto.arima(sensor) fcast <- forecast(fit, h=lendaysek1) plot(fcast) grid() print(" Fcast 1 ...")

str(fcast)


mdarima_pred<-fcast$mean

#stop(-1)



#plot(fc) str(pred)


#plot(pred)


print(mdarima1_pred)

#quit(-1)


# stop(-1)


  1. print(mdarima1_mean1)


  1. print (mean1)
  2. print (length(mean1))
#stop(-1)
  
#  aday1<-today
 # aday2<-as.Date(forecastendday1,"%Y/%m/%d")
   
  #futuredays1<-as.data.table(aday1:aday2)
 #    futuredays1<-as.data.table(as.Date(aday1):as.Date(aday2))
#  print(futuredays1)
  
  
#  stop(-1)
 
  
  
  
#  farrat1<-data.frame(futuredays1,mdarima1_mean1 )
 farrat1<-data.frame(daysek1,mdarima1_pred )
      
 #names(farrat1)<-c("Dates", "Mean", "Lower", "Upper")
 
 names(farrat1)<-c("Dates", "Forecast")
   
 #print(datelimits3)
 
 
  1. print(farrat1)
  1. print("s1")
#stop(-1)

 
 #print(farrat1)
 
  
 
 
# stop(-1)
 
 
 #plot(arrat$paivat, arrat$r0)
# plot(farrat1$paivat, farrat1$r0)
# lines(farrat1$paivat, farrat1$r0  )
# lines(sarrat2$paivat, sarrat1$r0  )

  1. stop(-1)
arrat<-farrat1



 names(arrat)<-c("Dates","Forecast")
 
 print (xy3)
 print(arrat)
 print (dim(arrat))
 print (str(arrat))
   print (str(xy3))
# stop(-1)
 
 # plot(farrat1$Dates, farrat1$Forecast)
  
 
# arrat$Forecast<-as.integer(arrat$Forecast)


  1. marrat <- left_join(arrat, xy3, by=c("Dates"))
marrat00 <- left_join(xy3, arrat, by=c("Dates"))
marrat <- bind_rows(marrat00, arrat)

 print (marrat)
#quit(-1)


  1. names(marrat)<-c("Dates","Forecast","Cases")
  names(marrat)<-c("Dates","Cases","Forecast") 
 
print (marrat)
#print(xy3)
  1. marrat<-arrat
  1. stop(-1)


if(tulosta_svg==1) {

#svg(filename=tulosfilee1, width=6, height=3, pointsize=12) svg(filename=tulosfilee1, width=8, height=5, pointsize=12)

}

if(plottaa==1) {

 metodi="loess"

print ("ggplot ...")

  1. ggplot(marrat, aes(x =Dates , y = Cases)) +

ggplot(marrat, aes(x =Dates , y = Forecast)) +

ylim(yala, yyla) + #xlim(as.Date(datelimits3, format="%d/%m/%Y") )+ xlim(as.Date(showdatelimits1, format="%d/%m/%Y") )+

ggtitle("Koronavirustapauksia /pv ennuste forecast") + xlab("Kuukausi") + ylab("Koronatapauksia")+ theme(title=element_text(size=17), axis.text=element_text(size=16,face="bold"),axis.title=element_text(size=16,face="bold"))+ #geom_point() + geom_smooth( fill="#a0a0ff",span=spanni, method=metodi, level=0.99999, size=3)+ geom_smooth( fill="#9090ff", span=spanni,method=metodi, level=0.99) + geom_smooth( fill="#8a08af", span=spanni, method=metodi,level=0.95) + geom_line(aes(x=Dates, y=Cases), size=3, color="blue") + geom_point(aes(x=Dates, y=Cases), size=1) #geom_smooth( fill="#8a08af", span=spanni, method=metodi,level=0.5)

#geom_hline(yintercept=1.0, linetype="dashed", color = "red", size=1)


}


if(tulosta_svg==1) { dev.off() }



Licensing

edit
I, the copyright holder of this work, hereby publish it under the following license:
w:en:Creative Commons
attribution share alike
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.

File history

Click on a date/time to view the file as it appeared at that time.

(newest | oldest) View (newer 10 | ) (10 | 20 | 50 | 100 | 250 | 500)
Date/TimeThumbnailDimensionsUserComment
current07:57, 14 April 2022Thumbnail for version as of 07:57, 14 April 2022720 × 450 (74 KB)Merikanto (talk | contribs)update
08:32, 7 August 2021Thumbnail for version as of 08:32, 7 August 2021720 × 450 (90 KB)Merikanto (talk | contribs)Update
10:15, 26 July 2021Thumbnail for version as of 10:15, 26 July 2021720 × 450 (86 KB)Merikanto (talk | contribs)Update
12:30, 13 July 2021Thumbnail for version as of 12:30, 13 July 2021720 × 450 (85 KB)Merikanto (talk | contribs)update
07:04, 16 June 2021Thumbnail for version as of 07:04, 16 June 2021720 × 450 (78 KB)Merikanto (talk | contribs)Update
12:25, 13 May 2021Thumbnail for version as of 12:25, 13 May 2021720 × 450 (123 KB)Merikanto (talk | contribs)Update
07:03, 28 April 2021Thumbnail for version as of 07:03, 28 April 2021720 × 450 (140 KB)Merikanto (talk | contribs)Update
12:26, 16 April 2021Thumbnail for version as of 12:26, 16 April 2021720 × 450 (123 KB)Merikanto (talk | contribs)Update
10:43, 23 March 2021Thumbnail for version as of 10:43, 23 March 2021720 × 450 (114 KB)Merikanto (talk | contribs)update
18:35, 26 February 2021Thumbnail for version as of 18:35, 26 February 2021720 × 450 (171 KB)Merikanto (talk | contribs)Update
(newest | oldest) View (newer 10 | ) (10 | 20 | 50 | 100 | 250 | 500)

There are no pages that use this file.

Metadata