【发布时间】:2019-02-16 16:20:24
【问题描述】:
我正在创建一个 POC,实时更新将反映在我闪亮的应用程序上。这个想法是绘制从服务器生成的数据的频率分布。因为我还没有访问服务器的权限,所以我模拟了一个数据创建,我将它提供给我的情节。我可以在控制台上正确查看数据,但我的应用程序上没有显示任何内容。我确信我错过了一些东西。我认为我无法查看绘图的原因是因为数据的更新速度比渲染速度快。有什么办法可以修改。
library(shiny)
library(magrittr)
library(plotly)
ui <- shinyServer(fluidPage(
plotOutput("plot")
))
alarms = c("NodeDown","GrowthRate","DecayRate","DiskFull","ServiceDown","Planned_shutdown","etc.....etc","ServerOutage",
"No Casue")
server <- shinyServer(function(input, output, session){
# Function to get new observations
get_new_data <- function(){
new = sample(alarms,1)
# data <- new %>% rbind %>% data.frame
return(new)
}
# Initialize my_data
my_data <<- get_new_data()
# Function to update my_data
update_data <- function(){
my_data <<- c(get_new_data(), my_data)
}
output$plot <- renderPlotly({
invalidateLater(1000, session)
update_data()
# print(my_data)
dd = update_data()
dd = as.data.frame(table(dd))
print(dd)
plot_ly(dd, x = ~dd, y = ~Freq)
})
# Plot the 30 most recent values
# output$first_column <- renderPlot({
# print("Render")
# invalidateLater(1000, session)
# update_data()
# print(my_data)
# plot(X1 ~ 1, data=my_data[1:30,], ylim=c(-3, 3), las=1, type="l")
# })
})
shinyApp(ui=ui,server=server)
【问题讨论】: