R Блестящий сюжет DT Таблица взаимодействия - PullRequest
1 голос
/ 20 февраля 2020

Я хочу сделать взаимодействие между таблицей и графиком, используя R-Shiny и Plotly.

  1. После щелчка по любой точке на графике: я хочу увеличить размер точки на графике, закрасить ее красным также в таблице, перенести соответствующую строку в верхнюю часть таблицы и выделить ее.

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

Поскольку мои данные большие, мне нужно сделать это на стороне подачи.

Мне удалось создать график, и в таблице ниже приведен мой код.

Файл ui.R:

  ui <- fluidPage(
  fluidPage(column(width = 6, plotlyOutput("volcanoplot", height = 350))),
  fluidPage(DT::dataTableOutput("de_table"))
  )

И файл server.R:

library("DT")
library(plotly)
library(shiny)

m <- mtcars[, c("mpg", "wt", "disp")] %>% 
  tibble::rownames_to_column()

function(input, output, session) {
  shared_data <- SharedData$new(m, ~rowname)

  output$volcanoplot <- renderPlotly({

        pp <- shared_data %>% plot_ly(source = 'volcanoplot') %>%
          add_trace(x = ~mpg, y = ~wt, type = 'scatter', mode = "markers")
      })

      # highlight selected rows in the table
      output$de_table <- DT::renderDataTable({
        dt <- DT::datatable(shared_data$data() , selection = 'single', rownames= FALSE)})
}

Я смог понять переменные щелчка и выбора таблицы как

click_detect = plotly::event_data('plotly_click', source = 'volcanoplot')
s <- input$de_table_rows_selected 

Спасибо за помощь.

...