向闪亮的人物添加多个反应性geom_lines

时间:2018-11-08 23:57:41

标签: r ggplot2 shiny

我想将两个数据集的无功输出作为不同的geom_lines包含在同一ggplotly图中。当仅包含一个反应性data.frame作为geom_line时,代码将按预期运行。为什么不两个?

base64

1 个答案:

答案 0 :(得分:1)

当您将数据放入长格式并为每个组分配一个组标识符时,它似乎起作用。请注意,您应该能够将sliderInput改回selectInput-这是我在测试期间切换的条目之一,但是UI小部件的选择无关紧要。

这行得通-可以从此处简化反应式内部的代码:

library(plotly)

  ui <- fluidPage(

  sidebarLayout(
     sliderInput("Var1",
            label = "Variable", #DATA CHOICE 1
            min=10, max=100, value=10),
     sliderInput("Var2",
            label = "Variable2", #DATA CHOICE 2
            min=10, max=100, value=10),
  ),
  mainPanel(
     plotlyOutput('plot') #Draw figure
  )
)

   server <- function(input, output) {

   out <- reactive({
      x1 <- rnorm(input$Var1)
      y1 <- seq(1:input$Var1)
      x2 <- rnorm(input$Var2)
      y2 <- seq(1:input$Var2)
      xx <- c(x1,x2)
      yy <- c(y1,y2)
      gg <- c( rep(1,length(y1)), rep(2,length(y2)) )
      df <- data.frame(cbind(xx,yy,gg))
      df
   })

   output$plot <- renderPlotly({
   p <- ggplot() +
       geom_line(data=out(), aes(x = xx, y = yy, group=gg, colour=gg))
   ggplotly(p)
   })

 }

shinyApp(ui = ui, server = server)

enter image description here