Блестящее приложение: brushOpts возвращает / получает 'Null' на входе $ plot1_brush - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь разработать приложение на основе tabPanel для демонстрации своих исследований.Я пытаюсь распечатать график рассеяния и пытаюсь использовать кисть, чтобы выбрать подмножество данных из него.Однако, выбирая значения из ggplot2, я не могу получить координаты.Ошибка, насколько я понимаю, связана с тем, что

input $ plot1_brush

, который возвращает 'NULL'

Я отправляю сообщениекод сервера, а также пользовательский интерфейс здесь.

Заранее спасибо за помощь.

Server.R

library(shiny)

shinyServer(function(input, output) {

library(plotly)
library(igraph)


# l is defined here 
output$distPlot <- renderPlotly(plot_ly(as.data.frame(l), x=l[,1], y = l[,2], z = l[,3], type = 'scatter3d' ))

## Tab 2 ##
# Works Fine

output$test <- renderDataTable({
  library(kableExtra)
  library(DT)
  library(Cairo)

  file_reader <- read.csv(file = "./data/output.txt", header = FALSE)
  transpose_step1 <- melt(file_reader)
  transpose_table <- as.data.frame(transpose_step1$value)
  colnames(transpose_table) <- c("Traffic")
  transpose_table$col2 <- cbind(c(1:length(transpose_table$Traffic)))
  datatable(transpose_table, filter = 'top', options = list(pageLength = 5))
})

##### Tab 3 ######    
# ERROR IS MOST LIKELY HERE

library(Cairo)
library(ggplot2)
mtcars2 <- mtcars[, c("mpg", "cyl", "disp", "hp", "wt", "am", "gear")]
output$plot2 <- renderPlot({
  ggplot(mtcars2, aes(wt, mpg)) + geom_point()
})

output$brush_info <- renderPrint({
  #print(input$plot2)       # THIS IS NULL
  #print(input$plot1_click) # THIS IS NULL
  #brushedPoints(mtcars2, input$plot1_brush) # THIS IS NULL
  input$plot1_brush
})

})

UI.R

library(shiny)
library(plotly)

shinyUI(navbarPage("Network Visualization",

# Application title
tabPanel("Visualization",

  # Sidebar with a slider input for number of bins
  sidebarLayout(
      sidebarPanel(
          selectInput(inputId = "type",
                      label = "Type of Graph",
                      choices = c("Rene Erdos","P2P-Gnutella"),
                      selected = "P2P-Gnutella"),
          selectInput(inputId = "color",
                      label = "Type of Color",
                      choices = c("Red","Green"),
                      selected = "Red"),
          submitButton(text = "Apply Changes", icon = NULL, width = NULL)
      ),


      # Show a plot of the generated distribution
      mainPanel(
      plotlyOutput("distPlot")
      ))
),
tabPanel("Traffic",
          dataTableOutput("test")
),
tabPanel("Interactive",
          plotOutput("plot2", height = 300,
                     # outputId = 'please',
                      # clickId = "plot1_click",
                        brush = brushOpts(
                          id = "plot1_brush")),
            fluidRow(
              column(width = 12,
                     h4("Selected Flows"),
                     verbatimTextOutput("brush_info")
              )
            )
)
))

Здесь, как вы можете видеть input $ plot1_brush должен вернуть мне координаты кисти, однако это всегда NULL , и я чувствую, что вход не может достичь plot1_brush .

NB: Я получаю координаты, если у меня есть пользовательский интерфейс и сервер как одно приложение / вкладка.

Любая помощь очень ценится!

...