【问题标题】:Plotting with action button in Shiny Rmarkdown在 Shiny Rmarkdown 中使用操作按钮进行绘图
【发布时间】:2015-12-18 08:28:20
【问题描述】:

我很好奇为什么以下方法不起作用。尝试使用对操作按钮的反应进行绘图时,无法在 Shiny 中显示绘图。

知道我做错了什么吗?我已经尝试了很多迭代和方法。如果 Shiny 在响应式环境中调用时可以生成绘图,有什么想法吗?

---
title: "Will not plot"

output: html_document

runtime: shiny

---


```{r setup, include=FALSE}
 knitr::opts_chunk$set(echo = TRUE)
```

```{r, echo = FALSE}

 inputPanel(
  actionButton("Plot", "Save and Open TRI"),
  numericInput("Size", label = "Size", value = 1000, 1000, 5000, 1000)
              )
# Works:
renderPlot({
plot(runif(1000)
     )})

# Doesn't work:
eventReactive(input$Plot,
{
  renderPlot({
plot(runif(1000)
 )})
}
)

observeEvent(input$Plot,
{
  renderPlot({
    plot(runif(1000)
     )})
}
)

```

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    应该这样做

    ---
    title: "Will not plot"
    output: html_document
    runtime: shiny
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = TRUE)  
    ```
    
    
    ```{r, echo = FALSE}
    
     inputPanel(
      actionButton("Plot", "Save and Open TRI"),
      numericInput("Size", label = "Size", value = 1000, 1000, 5000, 1000)
                  )
    
    p <- eventReactive(input$Plot, {plot(runif(1000))})
    
    renderPlot({
      p()
      })
    
    ```
    

    参考:Shiny Action Buttons - 尤其参见 模式 2 - eventReactive

    【讨论】:

    • 作为对不熟悉闪亮的人的帮助 - 更改 eventReactive 行 eventReactive(input$Plot, {plot(runif(input$Size))}) 也可以根据输入改变情节。
    • 谢谢。我长期以来一直在为相关问题苦苦挣扎,并且错过了一个关键事实,即上面的“p”是一个 function
    猜你喜欢
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 2012-02-28
    • 1970-01-01
    相关资源
    最近更新 更多