R Shiny server.R 反应式时间/日期滑块,轴变化

Posted

技术标签:

【中文标题】R Shiny server.R 反应式时间/日期滑块,轴变化【英文标题】:R Shiny server.R reactive time/date slider with changing axis 【发布时间】:2016-10-26 05:23:04 【问题描述】:

我有一个包含 5 个参数和一个日期/时间列的数据框。我希望能够使用下拉菜单将参数(即列)相互绘制,并使用滑块移动日期/时间。我在使用 server.R 时遇到了严重问题。日期/时间滑块表示随着下拉参数变化的数据。下面的示例数据,server.R 缺少关键元素

      LAT=rnorm(10)
      LONG=rnorm(10)
      DO=rnorm(10)
      SP=rnorm(10)
      TMP=rnorm(10)
DateTime=as.POSIXct(c("2016-04-18 10:30:00 ", 
"2016-04-18 10:30:00 ", "2016-04-18 10:31:00 ",
 "2016-04-18 10:31:00 ", "2016-04-18 10:32:00 ",
 "2016-04-18 10:32:00 ",
"2016-04-18 10:33:00 ", "2016-04-18 10:33:00 ", 
"2016-04-18 10:34:00 ", "2016-04-18 10:34:00"))

DATA=data.frame(cbind(LAT,LONG,DO,SP,TMP,DateTime))
DATA$DateTime=as.POSIXct(DateTime)



ui=(pageWithSidebar(
      headerPanel('DATA Comparison'),
      sidebarPanel(
        selectInput('xcol', 'X Variable', names(DATA)),
        selectInput('ycol', 'Y Variable', names(DATA),
                    selected=names(DATA)[[3]]),
       sliderInput('dtime', 'Date Time',min(DATA$DateTime),max(DATA$DateTime),
        min(DATA$DateTime),step=60, timeFormat= "%F %T")
                ),
      mainPanel(
        plotOutput('plot1')
      )
    ))

server=(function(input, output, session) 
  selectedData = reactive(
   DATA[ , c(input$xcol, input$ycol)]
  )

【问题讨论】:

你的问题到底是什么? 如何将日期/时间滑块链接到 DATA,以便绘图仅显示与每个下拉菜单 (xcol, ycol) 和 dtime 的输入相对应的数据点。取决于选择的绘图可能在 x 轴上具有 DO,在 y 轴上具有 SP,并且无论滑块输入在哪个日期/时间上都可以绘制点 【参考方案1】:

请看下面的例子

server=(function(input, output, session) 

    output$plot1 <- renderPlot(
        selected <- DATA[DATA$DateTime==input$dtime, ]
        plot(selected[[input$xcol]], selected[[input$ycol]])
    )

)

【讨论】:

以上是关于R Shiny server.R 反应式时间/日期滑块,轴变化的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ui.R 中读取 TextInput,在 global.R 中使用此值处理查询并使用 Shiny 在 server.R 中显示

SHINY-SERVER R(sparkR)语言web解决方案 架设shiny服务器

R Shiny 服务器分段错误

使用 D3 和 Shiny 在 R 中实现 `identify()`

从 R Shiny App 输出纯 HTML 文件

Shiny R:无法显示情节