隐藏闪亮的输出
Hide shiny output
如何隐藏呈现的 shiny
输出?具体来说,我有一些 shiny
生成的 figures/tables 并且我有一个按钮,单击时应该隐藏 figures/tables,再次单击时应该显示它们。
这是我目前所拥有的(下图),它有些工作,但是它应该隐藏 renderPlot
输出的地方,文档中有一个很大的空白 space 我我正在努力让自己离开。
应该可以将此代码复制并粘贴到 Rstudio 中并点击 运行 文档(它是 rmarkdown with shiny 运行time)。
---
runtime: shiny
---
```{r, echo=F}
actionButton("hide", "Hide")
dat <- data.frame(a=1:10, b=rexp(10, 1/10), c=letters[sample(1:24, 10)])
renderTable({
if (input$hide %% 2 == 1)
dat
})
```
lodi dodi
```{r, echo=F}
renderPlot({
if (input$hide %% 2 == 1)
plot(b ~ a, data=dat)
})
```
this text is separated by blank space, but it shouldn't be
您可以使用 shinyjs
包通过 hide()
函数隐藏元素(或使用 toggle()
函数在隐藏和显示之间交替)。免责声明:我写了那个包。
我以前从未在 rmarkdown 中使用过它,所以我将展示如何在普通的 shiny 应用程序中使用它,并使用 shinyApp()
函数在 rmarkdown 中包含一个完整的 shiny 应用程序降价。您可以阅读 here 了解如何在 rmarkdown 文档中包含闪亮的应用程序。
---
runtime: shiny
---
```{r, echo=F}
suppressPackageStartupMessages(
library(shinyjs)
)
dat <- data.frame(a=1:10, b=rexp(10, 1/10), c=letters[sample(1:24, 10)])
shinyApp(
ui = fluidPage(
useShinyjs(),
actionButton("hide", "Hide"),
p("Text above plot"),
plotOutput("plot"),
p("Text below plot")
),
server = function(input, output, session) {
output$plot <- renderPlot({
plot(b ~ a, data=dat)
})
observeEvent(input$hide, {
hide("plot")
# toggle("plot") if you want to alternate between hiding and showing
})
},
options = list(height = 700)
)
```
为了能够使用隐藏,我必须:
- 安装并加载
shinyjs
- 在 UI
中添加对 useShinyjs()
的调用
- 在您想要 hide/show
的元素上调用 hide
或 toggle
希望对您有所帮助
如何隐藏呈现的 shiny
输出?具体来说,我有一些 shiny
生成的 figures/tables 并且我有一个按钮,单击时应该隐藏 figures/tables,再次单击时应该显示它们。
这是我目前所拥有的(下图),它有些工作,但是它应该隐藏 renderPlot
输出的地方,文档中有一个很大的空白 space 我我正在努力让自己离开。
应该可以将此代码复制并粘贴到 Rstudio 中并点击 运行 文档(它是 rmarkdown with shiny 运行time)。
---
runtime: shiny
---
```{r, echo=F}
actionButton("hide", "Hide")
dat <- data.frame(a=1:10, b=rexp(10, 1/10), c=letters[sample(1:24, 10)])
renderTable({
if (input$hide %% 2 == 1)
dat
})
```
lodi dodi
```{r, echo=F}
renderPlot({
if (input$hide %% 2 == 1)
plot(b ~ a, data=dat)
})
```
this text is separated by blank space, but it shouldn't be
您可以使用 shinyjs
包通过 hide()
函数隐藏元素(或使用 toggle()
函数在隐藏和显示之间交替)。免责声明:我写了那个包。
我以前从未在 rmarkdown 中使用过它,所以我将展示如何在普通的 shiny 应用程序中使用它,并使用 shinyApp()
函数在 rmarkdown 中包含一个完整的 shiny 应用程序降价。您可以阅读 here 了解如何在 rmarkdown 文档中包含闪亮的应用程序。
---
runtime: shiny
---
```{r, echo=F}
suppressPackageStartupMessages(
library(shinyjs)
)
dat <- data.frame(a=1:10, b=rexp(10, 1/10), c=letters[sample(1:24, 10)])
shinyApp(
ui = fluidPage(
useShinyjs(),
actionButton("hide", "Hide"),
p("Text above plot"),
plotOutput("plot"),
p("Text below plot")
),
server = function(input, output, session) {
output$plot <- renderPlot({
plot(b ~ a, data=dat)
})
observeEvent(input$hide, {
hide("plot")
# toggle("plot") if you want to alternate between hiding and showing
})
},
options = list(height = 700)
)
```
为了能够使用隐藏,我必须:
- 安装并加载
shinyjs
- 在 UI 中添加对
- 在您想要 hide/show 的元素上调用
useShinyjs()
的调用
hide
或 toggle
希望对您有所帮助