Как удалить диаграмму, используя наблюдаемую в блестящей?
Я использую блестящую среду выполнения во flexdashboard.
Я хотел бы скрыть график при нажатии кнопки (input$updt
), и я пытался это:
---
title: "Students Data - College of Business"
output:
flexdashboard::flex_dashboard:
orientation: columns
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
library(ggplot2)
library(shinyjs)
shinyjs::useShinyjs(rmd=TRUE)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Chart A
```{r}
actionButton('updt', 'Update chart')
output$p1 <-renderPlot({ ggplot(diamonds, aes(carat, price)) + geom_point() }, height=800)
plotOutput("p1")
output$p2 <- renderPlot({
ggplot(mtcars, aes(cyl, disp))+ geom_point()
})
plotOutput("p2")
observeEvent(input$updt, {hide("p1")})
```
Однако, когда я нажимаю на кнопку, она не скрывается p1
1 ответ
hide()
нуждается в id
элемента, который содержит сюжет, но renderPlot
не позволяет устанавливать outputId
в outputArgs
,
Обходной путь должен использовать plotOutput
:
library(shinyjs)
shinyjs::useShinyjs(rmd=TRUE)
actionButton('updt', 'Update chart')
output$p1 <- renderPlot({load('p1.RDA') p1}, height=800)
plotOutput("p1")
output$p2 <- renderPlot(expr={ [...code to recalculate p2] })
plotOutput("p2")
observeEvent(input$updt, {hide("p1")})