I have also raised this question in stack overflow
(https://stackoverflow.com/questions/51436878/visualization-of-streaming-data-in-r-shiny-is-not-updating)
I am new to R shiny and just trying to do real-time data visualisation in R shiny by implementing the below code link "Visualizing Streaming Data And Alert Notification with Shiny"
https://datascienceplus.com/visualizing-streaming-data-with-shiny/
I am using two R session
R-session1
I am using following code
setwd("G:\\MY Project\\Jigsaw\\Deep learning\\shinyreal")
library(ggplot2)
library(dplyr)
data(diamonds)
Here the diamond dataset has been used.
head(diamonds)
# A tibble: 6 x 10
carat cut color clarity depth table price x y z
<dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
4 0.290 Premium I VS2 62.4 58 334 4.2 4.23 2.63
5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
str(diamonds)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 53940 obs. of 10 variables:
$ carat : num 0.23 0.21 0.23 0.29 0.31 0.24 0.24 0.26 0.22 0.23 ...
$ cut : Ord.factor w/ 5 levels "Fair"<"Good"<..: 5 4 2 4 2 3 3 3 1 3 ...
$ color : Ord.factor w/ 7 levels "D"<"E"<"F"<"G"<..: 2 2 2 6 7 7 6 5 2 5 ...
$ clarity: Ord.factor w/ 8 levels "I1"<"SI2"<"SI1"<..: 2 3 5 4 2 6 7 3 4 5 ...
$ depth : num 61.5 59.8 56.9 62.4 63.3 62.8 62.3 61.9 65.1 59.4 ...
$ table : num 55 61 65 58 58 57 57 55 61 61 ...
$ price : int 326 326 327 334 335 336 336 337 337 338 ...
$ x : num 3.95 3.89 4.05 4.2 4.34 3.94 3.95 4.07 3.87 4 ...
$ y : num 3.98 3.84 4.07 4.23 4.35 3.96 3.98 4.11 3.78 4.05 ...
$ z : num 2.43 2.31 2.31 2.63 2.75 2.48 2.47 2.53 2.49 2.39 ...
Here is the code that will continuously generate ".csv" file and will be saved on the above folder.
while(TRUE){
temp=sample_frac(diamonds, 0.1)
write.csv(temp, paste0("sampled", gsub("[^0-9]","", Sys.time()), ".csv"), row.names = FALSE)
Sys.sleep(10) # Suspend execution of R expressions. The time interval to suspend execution for, in seconds.
}
The R session 1 is quite ok, as the ".csv" is continuously generating and saving on target folder.
Now the problem is for the UI.R and Server.R programe.
R session 2
I have copied the following code
sampled_data <- reactivePoll(10, session,IsThereNewFile, ReadAllData)
# 10: number of milliseconds to wait between calls to checkFunc
output$plot1<-renderPlot({
sampled_data= sampled_data()
g1= ggplot(sampled_data, aes(depth, fill = cut, colour = cut)) +
geom_density(alpha = 0.1) +xlim(55, 70)+ggtitle("Distribution of Depth by Cut")+
theme(plot.title = element_text(color="darkred",size=18,hjust = 0.5),
axis.text.y = element_text(color="blue",size=12,hjust=1),
axis.text.x = element_text(color="darkred",size=12,hjust=.5,vjust=.5),
axis.title.x = element_text(color="red", size=14),
axis.title.y = element_text(size=14))
g2=ggplot(sampled_data, aes(carat, ..count.., fill = cut)) +
geom_density(position = "stack")+ggtitle("Total Carat by Count")+
theme(plot.title = element_text(color="purple",size=18,hjust = 0.5),
axis.text.y = element_text(color="blue",size=12,hjust=1),
axis.text.x = element_text(color="darkred",size=12,hjust=.5,vjust=.5),
axis.title.x = element_text(color="red", size=14),
axis.title.y = element_text(size=14))
g3=ggplot(sampled_data, aes(carat, ..count.., fill = cut)) +
geom_density(position = "fill")+ggtitle("Conditional Density Estimate")+
theme(plot.title = element_text(color="black",size=18,hjust = 0.5),
axis.text.y = element_text(color="blue",size=12,hjust=1),
axis.text.x = element_text(color="darkred",size=12,hjust=.5,vjust=.5),
axis.title.x = element_text(color="red", size=14),
axis.title.y = element_text(size=14))
g4=ggplot(sampled_data,aes(carat,price))+geom_boxplot()+facet_grid(.~cut)+
ggtitle("Price by Carat for each cut")+
theme(plot.title = element_text(color="darkblue",size=18,hjust = 0.5),
axis.text.y = element_text(color="blue",size=12,hjust=1),
axis.text.x = element_text(color="darkred",size=12,hjust=.5,vjust=.5),
axis.title.x = element_text(color="red", size=14),
axis.title.y = element_text(size=14))
grid.arrange(g1,g2,g3,g4)
})
}
shinyApp(ui, server)
On running the R session 1 code, it generates .csv file (this part is ok)
On running the R session 2 code or the shinyapp, it is creating 4 static images but my dynamic plot is not showing. I think it is not able to automatically read the data from update files.
I am not able to find it the actual problem.
The following error is showing.
shinyApp(ui, server)
Listening on http://127.0.0.1:5341
Parsed with column specification:
cols(
carat = col_double(),
cut = col_character(),
color = col_character(),
clarity = col_character(),
depth = col_double(),
table = col_double(),
price = col_integer(),
x = col_double(),
y = col_double(),
z = col_double()
)
Warning: Removed 2 rows containing non-finite values (stat_density).
Warning: Continuous x aesthetic -- did you forget aes(group=...)?
Don't know how to automatically pick scale for object of type function. Defaulting to continuous.
Don't know how to automatically pick scale for object of type function. Defaulting to continuous.
Warning: Error in FUN: object 'depth' not found
[No stack trace available]
When this type of error generally comes? any problem in ggplot2?
suggestions are always appreciated.