Функция рендеринга точек () на графике в приложении Shiny - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь создать блестящее приложение, которое отображает точки поверх графика. Я не уверен, как сделать и график, и точки видимыми одновременно, так как кажется, что используется только последний renderPlot ().

Как бы я мог построить оба сразу?

library(shiny)

server <- function(input, output, session) {          
  # data
  x <- c(1,3,4,6,2,4,6,8,6,3)
  y <- c(4,5,2,4,2,1,2,5,7,8)
  df <- data.frame(x,y)

  # plot
  output$plot <- renderPlot(plot(df[[1]],df[[2]]))        
  output$plot <- renderPlot(points(rnorm(200), rnorm(200)))
}

ui <- fluidPage(
  plotOutput("plot")
)

shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете сохранить данные в reactiveValues(). Затем обновите и нанесите на график данные реактивного значения.

Полный воспроизводимый пример будет читать:

library(shiny)

x <- c(1, 3, 4, 6, 2, 4, 6, 8, 6, 3)
y <- c(4, 5, 2, 4, 2, 1, 2, 5, 7, 8)

server <- function(input,  output,  session) {          
  global <- reactiveValues(data = data.frame(x,  y))

  observeEvent(input$add,{
    global$data <- rbind(global$data, data.frame(x = rnorm(20), y = rnorm(20)))
  })

  output$plot <- renderPlot(plot(global$data$x, global$data$y))
}

ui <- fluidPage(
  actionButton("add", "Add"),
  plotOutput("plot")
)

shinyApp(ui = ui, server = server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...