无法使用 Rmarkdown 在 Shiny 应用程序中渲染 ggvis 图
Cannot render ggvis plot in Shiny app using Rmarkdown
我很难让 ggvis 和 shiny 在基于 Rmarkdown 的应用程序中很好地发挥作用。即使不使用 bind_shiny
和 ggvisOutput
(如 here 所示),我也可以毫无问题地创建以下 ggvis 图:
---
title: "test"
runtime: shiny
output: html_document
---
```{r setup, include=FALSE}
require(ggvis)
knitr::opts_chunk$set(echo = TRUE)
```
```{r static}
inputPanel(
sliderInput('n', 'n:', min = 10, max = 100, value = 50),
actionButton('run', 'Run!')
)
data = data.frame(x = rnorm(50))
data %>%
ggvis(~x) %>%
layer_histograms()
```
但是,我正在构建动态报告以允许用户配置输入数据,然后通过点击 'run' 按钮重新执行,如下所示:
```{r config}
inputPanel(
sliderInput('n', 'n:', min = 10, max = 100, value = 50),
actionButton('run', 'Run!')
)
data = eventReactive(input$run, { data = data.frame(x = rnorm(input$n)) })
data %>%
ggvis(~x) %>%
layer_histograms()
```
当我尝试 运行 文档时,我收到无法描述的错误 Quitting from lines 26-36 (test.Rmd)
。有人知道如何让它工作吗?
更新:
这几乎可以工作,但是当我点击 'Run!' 时,ggvis 图会在单独的浏览器中呈现 window 而不是在文档中呈现:
```{r config}
inputPanel(
sliderInput('n', 'n:', min = 10, max = 100, value = 50),
actionButton('run', 'Run!')
)
data = eventReactive(input$run, { data = data.frame(x = rnorm(input$n)) })
renderTable({summary(data())})
renderPlot({
data() %>%
ggvis(~x) %>%
layer_histograms() %>%
bind_shiny('plot')
})
ggvisOutput('plot')
```
您链接的两个问题表明您需要 reactive({
中的 'ggvis' 代码,而不是 renderPlot({
这对我有用
---
title: "test"
runtime: shiny
output: html_document
---
```{r config}
library(ggvis)
inputPanel(
sliderInput('n', 'n:', min = 10, max = 100, value = 50),
actionButton('run', 'Run!')
)
data = eventReactive(input$run, { data = data.frame(x = rnorm(input$n)) })
renderTable({summary(data())})
reactive({
data() %>%
ggvis(~x) %>%
layer_histograms() %>%
bind_shiny('plot')
})
ggvisOutput('plot')
```
我很难让 ggvis 和 shiny 在基于 Rmarkdown 的应用程序中很好地发挥作用。即使不使用 bind_shiny
和 ggvisOutput
(如 here 所示),我也可以毫无问题地创建以下 ggvis 图:
---
title: "test"
runtime: shiny
output: html_document
---
```{r setup, include=FALSE}
require(ggvis)
knitr::opts_chunk$set(echo = TRUE)
```
```{r static}
inputPanel(
sliderInput('n', 'n:', min = 10, max = 100, value = 50),
actionButton('run', 'Run!')
)
data = data.frame(x = rnorm(50))
data %>%
ggvis(~x) %>%
layer_histograms()
```
但是,我正在构建动态报告以允许用户配置输入数据,然后通过点击 'run' 按钮重新执行,如下所示:
```{r config}
inputPanel(
sliderInput('n', 'n:', min = 10, max = 100, value = 50),
actionButton('run', 'Run!')
)
data = eventReactive(input$run, { data = data.frame(x = rnorm(input$n)) })
data %>%
ggvis(~x) %>%
layer_histograms()
```
当我尝试 运行 文档时,我收到无法描述的错误 Quitting from lines 26-36 (test.Rmd)
。有人知道如何让它工作吗?
更新:
这几乎可以工作,但是当我点击 'Run!' 时,ggvis 图会在单独的浏览器中呈现 window 而不是在文档中呈现:
```{r config}
inputPanel(
sliderInput('n', 'n:', min = 10, max = 100, value = 50),
actionButton('run', 'Run!')
)
data = eventReactive(input$run, { data = data.frame(x = rnorm(input$n)) })
renderTable({summary(data())})
renderPlot({
data() %>%
ggvis(~x) %>%
layer_histograms() %>%
bind_shiny('plot')
})
ggvisOutput('plot')
```
您链接的两个问题表明您需要 reactive({
中的 'ggvis' 代码,而不是 renderPlot({
这对我有用
---
title: "test"
runtime: shiny
output: html_document
---
```{r config}
library(ggvis)
inputPanel(
sliderInput('n', 'n:', min = 10, max = 100, value = 50),
actionButton('run', 'Run!')
)
data = eventReactive(input$run, { data = data.frame(x = rnorm(input$n)) })
renderTable({summary(data())})
reactive({
data() %>%
ggvis(~x) %>%
layer_histograms() %>%
bind_shiny('plot')
})
ggvisOutput('plot')
```