eventReactive对所有输入值作出反应

时间:2019-11-11 16:21:27

标签: r shiny reactive-programming

我似乎不了解反应性。我以为自从我使用eventReactive定义myPlot以来,它只在单击actionButton时才会更新该图。但是,它会更新所有反应值。

然后,我尝试将对输入$横坐标和输入$坐标的调用包装在带有独立对象的eventReactive中,但这导致该图永不更新(轴标签除外)。

这是一个代表。按下“绘图”按钮创建绘图。如果您更改主要成分之一,则图将更新。我该如何阻止?

export cgo_enabled=0 go build 

1 个答案:

答案 0 :(得分:1)

问题在于aes()属性是延迟计算的。您需要使用一些元编程来在代码运行时而不是在绘制代码时实际插入输入的值。使用

  ggplot(
    aes(
      x = .[,which(myPCs==!!(input$abscissa))],
      y = .[,which(myPCs==!!(input$ordinate))],
      fill = V6
    )
  )

input$abscissa的值而不是表达式aes()插入input$abscissa中。请注意,您不必为xintercept=yintercept=值执行此操作,因为它们在aes()之外。