############################################################### ## Title: Stacked plot of the Cumulative Counts of- ## ## Tests reported Positive, Tests reported Negative ## ## and Tests whose results are Awaited in Karnataka ## ## Input: KAtrace26June.csv ## ## Output: Plot of Date Vs Number of Childeren ## ## Date Modified: 06-05-2024 ## ############################################################### ## Required Libraries library(plotly) ## Reading the csv file containing tests done, number of tests reported positive and number of tests reported negative ## note that this code only works with the csv file version that was not updated after 16 July testdata=read.csv("../Data/karnatakadatabriefstesting16July.csv") total=testdata[,1] pos=testdata[,3] neg=testdata[,2] ## preparing date headings for x-labels date=seq(as.Date("12/03/20","%d/%m/%y"),length=length(pos),by="1 day") d2=format(date, "%d-%b") ## variables to store custom fonts f <- list(family = "serif", size = 17, color = 'black',face="bold") f2<- list(family = "serif", size = 13, color = 'black',face="bold") f3<-list( family="serif",size=13,color='black') ## preparing the data frame df for cumulative counts tested<-pos+neg total<-cumsum(total) pos<-cumsum(pos) neg<-cumsum(neg) awaited<-total-neg-pos df=data.frame("Date"=d2,"Awa"=awaited, "Pos"=pos,"Neg"=neg) df$Date=factor(df$Date, levels=d2) ## plotly stacked plot of tests reported Positive, Tests reported Negative and Tests whose results are Awaited fig<-plot_ly(df,x=~Date,y=~Pos,type="scatter",mode="lines",name="Positive Samples",fillcolor="darkred",line=list(color="darkred"),stackgroup="one",hoverinfo='text',text=~paste('
Date: ',Date,'
Positive Samples: ',Pos)) fig<-fig%>% add_trace(y=df$Neg,name="Negative Samples",fillcolor="lightgreen",line=list(color="lightgreen"),hoverinfo='text',text=~paste('
Date:',Date,'
Negative Samples: ',Neg)) fig<-fig%>% add_trace(y=df$Awa,name="Results Awaited",fillcolor="lightblue",line=list(color="lightblue"),hoverinfo='text',text=~paste('
Date:',Date,'
Results Awaited: ',Awa)) fig<-fig %>% layout(title= "Karnataka COVID Samples- Cumulative Count",font=f2, yaxis=list(title=" ", titlefont=f,tickfont=f3,showgrid=T,showline=T,zeroline=F),xaxis= list(title=" ",tickangle=-45,tickfont=f3,showgrid=T,showline=T, ticklabels=F)) ## saving the graph save_image(fig, "./plotlyfigures/sampletest.svg") name = paste("sample","test.html", sep="-") path <- file.path(getwd(), "plotlyfigures", name) htmlwidgets::saveWidget(fig, file=path, selfcontained = FALSE, libdir = "plotly.html")