2
我想創建一個Shiny應用程序來顯示實時收集的數據。對於這個我使用invalidateLater(5000, session)
定期更新R.用實時數據創建一個閃亮的應用程序
這裏的數據是我server.R
文件的概要:
library(shiny)
library(magrittr)
# Function to get new observations
get_new_data <- function(){
data <- rnorm(5) %>% rbind %>% data.frame
return(data)
}
# Initialize my_data
my_data <- get_new_data()
# Function to update my_data
update_data <- function(){
my_data <- rbind(get_new_data(), my_data)
}
shinyServer(function(input, output, session){
# Plot the 30 most recent values
output$first_column <- renderPlot({
invalidateLater(5000, session)
update_data()
plot(X1 ~ 1, data=my_data[1:30,], ylim=c(-3, 3), las=1)
})
})
我遇到的問題是,我想說明的ñ最最近的值,但無法弄清楚如何保持舊值。因此,不是繪製最近的30個值,而是繪製1個值。
有誰知道正確的方式來設置一個Shiny應用程序更新與新的數據,同時保持舊?
我想問題出在你的plot()調用中。每當你打電話時它會產生一個新的情節。嘗試使用'plot()'僅用於第一個繪圖,然後用'points()'繪製所有隨後的繪圖 –
我看到的問題是每個觀察的指數都增加。所以使用'points()'將會添加到圖中,但只有在x = 1時。 – user12202013
研究一些JS庫,因爲它們提供驚人的功能時,實時 –