如何在 RMarkdown 中嵌入 ggvis 交互式图表?

How to embed ggvis interactive charts in RMarkdown?

我正在尝试将 RMarkdown 编入 html 这个来自 interactivity vignette 的情节:

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.

您必须在 header 中设置 "output: html_document" 和 "runtime: shiny"。这对我有用:

---
title: "Whosebug"
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")
    )
```

最简单的方法是转到 file/new file/R markdown/Shiny/Shiny 文档。然后 header 会自动为你设置好,代码框上方的栏上会有一个播放按钮,而不是 knitr 按钮。另请注意,您需要在代码中包含 library(ggvis),因为 shiny 将从空白开始,无法 "see" 您已加载的包或函数。