首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在R闪亮仪表板中打开和关闭线条

如何在R闪亮仪表板中打开和关闭线条
EN

Stack Overflow用户
提问于 2018-07-31 02:44:27
回答 1查看 389关注 0票数 1

我正在使用R Shiny中的Plot_ly包绘制图形。现在我正在创建一个上面有许多线的图形,我想知道用户是否可以使用复选框输入来打开和关闭这些线。

下面是我的服务器端代码示例:

代码语言:javascript
复制
output$site_filter <- renderUI({
    selectInput("site_filter", "Sites"
                sort(unique(site_list$sites), decreasing = FALSE))
  })

output$plots <- renderPlotly({

forecast_detail <- forecast[forecast$site == input$site_filter,]

actual_detail <- actual[actual$site == input$site_filter,]

p <- plot_ly() %>%
      add_lines(x = forecast_detail$date, y = forecast_detail$total,
                name = 'Forecast', line = list(color = 'purple')) %>%
      add_lines(x = actual_detail$date, y = actual_detail$total,
                name = 'Actual', line = list(color = 'blue'))

})

对于我的UI端,我创建了如下复选框:

代码语言:javascript
复制
fluidRow(checkboxInput("Actuals", "Actual Line", value = TRUE))

有没有一种方法可以使用此复选框输入来打开和关闭实际行?我一直试图在add_lines命令之前使用if语句,但我得到了一个错误,指出这不符合逻辑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-31 05:15:48

您可以存储第一组行,并根据复选框触发的条件添加第二组行。如果没有一个可重复的例子,很难想出一个可行的解决方案,但像这样的东西应该可以完成工作:

代码语言:javascript
复制
output$plots <- renderPlotly({

  forecast_detail <- forecast[forecast$site == input$site_filter,]
  actual_detail <- actual[actual$site == input$site_filter,]

  p <- plot_ly() %>%
    add_lines(
      x = forecast_detail$date, 
      y = forecast_detail$total,
      name = 'Forecast', 
      line = list(color = 'purple')
    )

  if(!is.null(input$Actuals)) {
    p <- p %>%
      add_lines(
        x = actual_detail$date, 
        y = actual_detail$total,
        name = 'Actual', 
        line = list(color = 'blue')
      )
  }

  return(p)

})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51600374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档