Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R闪亮:输入输入或按下操作按钮时刷新绘图_R_Shiny_Data Science_Shiny Reactivity - Fatal编程技术网

R闪亮:输入输入或按下操作按钮时刷新绘图

R闪亮:输入输入或按下操作按钮时刷新绘图,r,shiny,data-science,shiny-reactivity,R,Shiny,Data Science,Shiny Reactivity,我是R Shining的新手,但我遇到以下问题已有一段时间了,希望您能提供一些帮助: 我尝试刷新R中的绘图,如果输入新的输入参数或按下操作按钮,则应刷新该绘图。这应该是直截了当的,但不幸的是,我无法解决它,尽管谷歌/阅读说明了一段时间。任何建议都会被推荐。web上的任何解决方案似乎都将整个renderplot函数放在了observeEvent函数的内部,但我还需要renderplot函数的外部,以考虑只输入输入而不按操作按钮的可能性 我在创建一个renderplot时没有遇到任何问题,它要么在输

我是R Shining的新手,但我遇到以下问题已有一段时间了,希望您能提供一些帮助:

我尝试刷新R中的绘图,如果输入新的输入参数或按下操作按钮,则应刷新该绘图。这应该是直截了当的,但不幸的是,我无法解决它,尽管谷歌/阅读说明了一段时间。任何建议都会被推荐。web上的任何解决方案似乎都将整个renderplot函数放在了observeEvent函数的内部,但我还需要renderplot函数的外部,以考虑只输入输入而不按操作按钮的可能性

我在创建一个renderplot时没有遇到任何问题,它要么在输入新输入时以独占方式刷新,要么在按下按钮时以独占方式刷新

但是,当同时执行这两项操作时,我失败了:我首先尝试复制renderplot函数,包括结果输出两次,一次在observeEvent函数内复制,以说明单击操作按钮的原因;另一次在observeEvent外复制,以说明仅刷新绘图输入的原因,但这只会导致图形变灰按下操作按钮时,延迟约10秒后刷新。我想象将直接单击action按钮生成的反应性单击输入添加到observe事件外部的renderplot,但到目前为止,我无法让它运行。如有任何建议,将不胜感激

提前谢谢你。

像这样吗

编辑:无需将selectInput传递给反应VAL。。这是同样的:

library(shiny)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput(inputId="select", label="title", choices=LETTERS[1:3], selected = "A"),
      actionButton(inputId="btn", label="refresh")
    ),
    mainPanel(
      plotOutput("scatterPlot")
    )
  )
)

server <- function(input, output) {

  plotSettings <- reactiveValues()

  observeEvent(c(input$btn, input$select), {
    plotSettings$values <- runif(100,1,100)
    # plotSettings$title <- input$select
  }, ignoreNULL = FALSE)

  output$scatterPlot <- renderPlot({
    plot(plotSettings$values, main=input$select)
  })
}

shinyApp(ui = ui, server = server)

如果你的文章中没有一个最小的工作示例代码,你不可能得到很多帮助。考虑添加一个。如果需要手动输入,您可能需要用文本输入替换SaltPosits。非常感谢,这解决了它!我没有考虑将输入$select作为observeevent的另一个触发器。通过这种方式,您可以仅从observeevent内部调用renderplot函数一次。仅供参考-我已经对你的答案投了赞成票,但由于我的声誉仍然低于15,很遗憾,它没有显示赞成票分数。