R 如果一个无功值发生变化,而另一个无功值没有变化,则重新绘制一次绘图?

R 如果一个无功值发生变化,而另一个无功值没有变化,则重新绘制一次绘图?,r,shiny,R,Shiny,我有两个反应值input$code和input$variants,如果以下任何条件为真,我想重新绘制一次绘图 代码更改和变体更改 代码更改和变体不会更改 代码不会更改,变体也会更改 我不能在renderPlotly中同时调用input$code和input$variants,否则将为上面的#1重新绘制两次绘图 output$choose\u test我很不清楚你在问什么。加入一个能更清楚地说明你的问题的例子会很有帮助。我不确定您是如何同时更改两个值的。@MrFlick已编辑为包含服务器的一部分

我有两个反应值
input$code
input$variants
,如果以下任何条件为真,我想重新绘制一次绘图

  • 代码更改和变体更改
  • 代码更改和变体不会更改
  • 代码不会更改,变体也会更改
  • 我不能在renderPlotly中同时调用
    input$code
    input$variants
    ,否则将为上面的#1重新绘制两次绘图



    output$choose\u test我很不清楚你在问什么。加入一个能更清楚地说明你的问题的例子会很有帮助。我不确定您是如何同时更改两个值的。@MrFlick已编辑为包含服务器的一部分。R@Takkun我同意MrFlick关于最小可重复性的例子。第一种情况如何发生,我的意思是两个变量如何同时变化,或者至少作为一个单一事件的结果?
    
      output$choose_test <- renderUI({
        data_sets <- loadTest()
        selectizeInput(
          'test', 'Test', choices = data_sets$test, selected = data_sets$test[1]
        )
      })
    
      output$choose_code <- renderUI({
        validate(
          need(input$test, 'Please choose a test.')
        )
    
        code <- loadCode(input$test)
        selectizeInput(
          'code', 'Code', choices = code$code, selected = code$code[1]
        )
      })
    
      output$choose_variants <- renderUI({
        validate(
          need(input$test,  'Please choose a test.'),
          need(input$code,   'Please choose a code.')
        )
    
        dat <- loadVariants(input$test, input$code)
    
        default_select <- dat$variant[grep('v1|v2', dat$variant)]
        if (identical(default_select, factor(0))) {
          default_select <- dat$variant[1]
        }
    
        checkboxGroupInput("variants", "Variants",
                            choices  = dat$variant,
                            selected = default_select)
      })
    
      output$plot1 <- renderPlotly({
    
        runLocations <- isolate(loadRunsBetweenDates(input$test, input$code, input$variants))
    
        total_min_df <-
          runLocations %>%
          group_by(change_number, variant) %>%
          summarize(memory = min(memory))
    
        total_min_df$change_number <- as.numeric(as.character(total_min_df$change_number))
    
        p <- ggplot(total_min_df,
               aes(x=change_number,
                   y=memory,
                   group=variant,
                   color=variant))+
        geom_point()+
        geom_smooth(se = FALSE)+
        scale_x_continuous(labels = function(n){format(n, scientific = FALSE)})+
        scale_y_continuous(labels = function(n){format(n, scientific = FALSE)})+
        labs(x = "Change Number", y = "Megabytes")
    
        ggplotly(p)
      })