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
,如果以下任何条件为真,我想重新绘制一次绘图
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)
})