首页 > 解决方案 > 如何使用闪亮的应用程序在一张图片中显示两个不同的变量

问题描述

我在使用 Shiny 应用程序时遇到了一些困难。

我的数据如下所示:

mydata: 

    time = c(1995-01-01, 1995-02-01, 1995-03-01, 1995-04-01, 1995-05-01)
    var_1 = c(64.6, 75.1, 45.3, 67.4, 45.1)
    var_2 = c(4.5, 6.7, 3.5, 6.6, 8.7)

var_1 和 var_2 都是数字。

我的目标是使用 plot_ly 构建一个图,您可以在其中从下拉菜单中选择 var_1 或 var_2。Var_1 是一个时间序列,我希望它是分散类型。Var_2 是同比变化 (%),我想在那里使用类型 bar。

我已经使用 selectInput 构建了我的下拉菜单:

box(plotlyOutput("data", height=500)
selectInput("variable", "choose variable", choices = c("var_1", "var_2"))

然后对于服务器,我尝试使用“if”函数,以便绘图将从散点图更改为条形图,具体取决于选择了哪一个:var_1 或 var_2。这不太像这样工作,但我自己无法解决这个问题:

server <- function(input, output) {

output$data <- renderPlotly({
     plot_ly(mydata,
            if(input$variable == "var_1")
             {add_trace(x = ~ mydata$time,
                        y = ~ mydata$var_1,
                        type = "bar",
                        name = "name",
                        color = "")} %>%
           if(input$variable == "var_2")
            {add_trace(x = ~ mydata$time,
                        y = ~ mydata$var_2,
                        type = "scatter",
                        mode = "lines",
                        name = "name2",
                        color = "")} %>%
      layout(title = "title",
             xaxis = list(title = "",
                          zeroline = FALSE),
             yaxis = list(title = "",
                          zeroline = FALSE)))
      
  })

}

shinyApp(ui, server)

标签: plotlyshinyapps

解决方案


推荐阅读