R Shiny: Могу ли я использовать brightjs () без кнопки action? - PullRequest
0 голосов
/ 06 декабря 2018

Я надеюсь автоматически спрятать график с использованием glossjs () без использования actionButton.Это возможно?

Это мой код в ui.R:

tabPanel(title = "Plot", useShinyjs(), 
         sidebarPanel(width = 4,                                                                           
                      h2("Plotting"),                                                                           
                      radioButtons(inputId = "type",                                                                                                       
                                   label = "Type of Plot:",                                                                                                      
                                   choices = c("Scatter Plot", 
                                               "Pie Chart", "Bar Chart"),                                                                                                   
                                   selected = "Scatter Plot"),                                                                                  
                   ),

         mainPanel(width = 8,
                   br(), br(),                                                                  
                   div(id='showplot', plotlyOutput(outputId = "plot")),
                   div(id='showplot2', plotOutput(outputId = "plot2")),
                   br(),                                                     
                   h5(textOutput("description"))
                   )
                  )

Это мой код на сервере. R:

output$plot <- renderPlotly({
  if (input$type == "Scatter Plot") {
  show("showplot") 
} else {
  hide("showplot")
}
  ggplotly({
    p <- ggplot(data = variable_source(), aes_string(x = input$x, y = input$y)) +
    geom_point(size = input$size, col = input$color) +
    labs(x = x(),
         y = y(),
         color = toTitleCase(str_replace_all(input$z, "_", " ")),
         title = toTitleCase(input$plot_title)

  if (input$fit == TRUE) {
    p <- p + geom_smooth(method = "lm")
  }
  p
  })
})

output$plot2 <- renderPlot({
if (input$type == "Pie Chart") {
    show("showplot2") 
  } else {
    hide("showplot2")
  }
  ggplot(shortlistpied(), aes_string(x = factor(1),  y = "Percentage", fill = input$y)) + 
    geom_bar(stat = "identity", width = 1) +
    geom_text(aes(x = factor(1), y = label_pos, label = perc_text), size = 4) + 
    scale_fill_distiller(palette = "Oranges") +
    coord_polar("y") + 
    facet_wrap( ~get(input$x)) + 
    theme_void()
})

РЕДАКТИРОВАТЬ: Это то, что я вижусначала, когда я запускаю приложение: scatter plot original , и это все хорошо.Но когда я нажимаю на круговую диаграмму, я вижу следующее: круговая диаграмма исчезает .Диаграммы исчезают, когда они должны быть там, как это: круговая диаграмма оригинал .Кроме того, когда я возвращаюсь к щелчку на графике рассеяния, он тоже исчезает так: график рассеяния исчезает .Можно ли это решить?

По сути, я пытаюсь, чтобы основная панель показывала график рассеяния, когда пользователь нажимает на график рассеяния, и круговую диаграмму, когда пользователь нажимает на круговую диаграмму.Я пытался использовать NULL, но со ссылкой на этот пост - R Shiny: Как не отображать график при NULL , это создает неудобное пустое пространство, и я надеюсь, что смогу избежать этого.

Большое спасибо заранее!

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