闪亮的情节没有出现

用户3167043

我正在尝试制作我的第一个闪亮的应用程序,其中接收了许多值,执行了许多计算(这取决于输入中的值和服务器函数中的值),然后绘制输出。但是,我可以在输出中根本不绘图(如下面的示例所示),或者只能显示 1:1 线而不显示我的数据。我不完全确定从哪里开始进行故障排除,但我认为我在进行计算和将它们输入到绘图函数方面都存在问题。如果您有任何指示,将不胜感激。

这是我的应用程序的简化版本:

library(shiny)
require(ggplot2)

ui<-fluidPage(
  sidebarLayout(
    sidebarPanel(
      titlePanel("mytitle"),
      sliderInput(inputId= "min", label="minratio", value=0, min=0, max=0.499),
      sliderInput(inputId= "max", label="maxratio", value=1, min=0.5, max=1)
    ),
    mainPanel(
      textOutput("valoutput"),
      plotOutput("distPlot",width="100%"))
  )
)

server<-function(input, output){
  BS = function(x) {
    mini=x[1]; maxi=x[2]
    ratio <-seq(from=mini,to=maxi, by=0.01) 
    total<-30*ratio+3
    res = c(ratio,total)
  }
  data<-reactive({as.data.frame("mini"=as.numeric(input$min), "maxi"=as.numeric(input$max))})

  output$valoutput <- renderText({BS(data())[1]})
  output$distplot <- renderPlot({
    d1=BS(data())[1]
    d2=BS(data())[2]
       ggplot()+geom_abline(intercept = 0, slope=1, colour="grey50")+geom_point(aes(x=d1, y=d2))
  }, height = 350, width = 600)

}

shinyApp(ui=ui, server=server)

非常感谢!

世嘉

您的 BS 功能不正确。用这个(用as.numeric改变它否则 x[1]/x[2] 将是 data.frames 并将在seq(). 或者,您也可以使用双括号,例如x[[1]].

  BS = function(x) {
    mini=x[1]; maxi=x[2]
    ratio <-seq(from=as.numeric(mini),to=as.numeric(maxi), by=0.01) 
    total<-30*ratio+3
    res = c(ratio,total)
  }

并且在您的 ui 中,您的绘图输出名称不正确。应该distplot不是distPlot

而且您不需要调用as.data.frame,只需data.frame做正确的工作,因为您想创建一个 data.frame 而不是转换对象。

  data <- reactive({
    data.frame("mini"=as.numeric(input$min), 
               "maxi"=as.numeric(input$max))
    })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章