Как встроить интерактивные диаграммы ggvis в RMarkdown?

Я пытаюсь связать RMarkdown с html этим сюжетом из интерактивной виньетки:

mtcars %>% ggvis(x = ~wt) %>%
    layer_densities(
      adjust = input_slider(.1, 2, value = 1, step = .1, label = "Bandwidth adjustment"),
      kernel = input_select(
        c("Gaussian" = "gaussian",
          "Epanechnikov" = "epanechnikov",
          "Rectangular" = "rectangular",
          "Triangular" = "triangular",
          "Biweight" = "biweight",
          "Cosine" = "cosine",
          "Optcosine" = "optcosine"),
        label = "Kernel")
    )

Но я получаю следующее сообщение об ошибке:

## Warning: Can't output dynamic/interactive ggvis plots in a knitr document.
## Generating a static (non-dynamic, non-interactive) version of the plot.

person Dambo    schedule 29.10.2016    source источник
comment
Вверху страницы указано Note: If you’re viewing the HTML version of this document generated with knitr, the examples will have their interactive features disabled. You’ll need to run the code in R to see and use the interactive controls. Вы можете запустить его в Shiny или FlexDashboard RMarkdown с поддержкой Shiny. Вы также можете проверить, что добавляет некоторые ограниченный контроль на стороне клиента.   -  person alistaire    schedule 30.10.2016
comment
@alistaire Спасибо, я заметил это, но раньше думал, что это возможно, не так ли? Означает ли это, что ggvis.rstudio.com/interactivity.html на самом деле блестящее приложение?   -  person Dambo    schedule 30.10.2016
comment
Поверьте, или, по крайней мере, он работает на сервере Shiny. Обратите внимание, что он загружается немного медленнее, чем остальные страницы RStudio.   -  person alistaire    schedule 30.10.2016


Ответы (1)


Вы должны установить "output: html_document" и "runtime: shiny" в заголовке. Это работает для меня:

---
title: "stackoverflow"
author: "Kári S Friðriksson"
date: "7 nóvember 2016"
output: html_document
runtime: shiny
---

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



```{r eruptions, echo=FALSE}
mtcars %>% ggvis(x = ~wt) %>%
    layer_densities(
      adjust = input_slider(.1, 2, value = 1, step = .1, label = "Bandwidth adjustment"),
      kernel = input_select(
        c("Gaussian" = "gaussian",
          "Epanechnikov" = "epanechnikov",
          "Rectangular" = "rectangular",
          "Triangular" = "triangular",
          "Biweight" = "biweight",
          "Cosine" = "cosine",
          "Optcosine" = "optcosine"),
        label = "Kernel")
    )
```

Самый простой способ сделать это - перейти в файл / новый файл / R markdown / Shiny / Shiny document. Тогда заголовок будет автоматически настроен для вас, а на полосе над полем кода будет кнопка воспроизведения вместо кнопки вязальной машины. Также обратите внимание на то, что вам необходимо включить library(ggvis) в код, потому что shiny будет начинаться с чистого листа и не сможет «видеть» загруженные вами пакеты или функции.

person Fridriksson    schedule 07.11.2016