最近,我一直在尝试slidifyrCharts。在使用slidify时生成简单图表的教程是说明性的,但是我找不到关于rCharts的任何此类教程。

例如,我知道以下内容会生成一个交互式图

data(mtcars)
r1<- rPlot(mpg ~ wt | am + vs, data=mtcars, type="point")
data(iris)
hair_eye = as.data.frame(HairEyeColor)
rPlot(Freq ~ Hair | Eye,color = 'Eye', data = hair_eye, type = 'bar')

但是,我不知道如何使用slidify将结果图合并到幻灯片中。

编辑-有用的评论之后

在Ramnath的git上看到它之后,我尝试了以下操作:
---
title       : Practice
subtitle    : makes perfect
author      : Noob
job         :
framework   : io2012        # {io2012, html5slides, shower, dzslides, ...}
highlighter : highlight.js  # {highlight.js, prettify, highlight}
hitheme     : tomorrow      #
widgets     : [nvd3]            # {mathjax, quiz, bootstrap}
mode        : selfcontained # {standalone, draft}
---

```{r setup, message = F, echo = F}
require(rCharts)
options(RCHART_WIDTH = 800, RCHART_HEIGHT = 500)
knitr::opts_chunk$set(comment = NA, results = 'asis', tidy = F, message = F)
```


## NVD3 Scatterplot

```{r echo = F}
data(mtcars)
n1 <- nPlot(mpg ~ wt, group = 'gear', data = mtcars, type = 'scatterChart')
n1$print('chart1')
```

但最终出现此错误:
Error in file(con, "r") : cannot open the connection
In addition: Warning message:
In file(con, "r") :
  cannot open file 'libraries/widgets/nvd3/nvd3.html': No such file or directory

之后,我决定将Ramnath的小部件中的nvd3文件夹直接复制到我的文件夹中,希望可以解决此问题。但是,这最终疯狂地在后台显示了Ramnath的git页面以及我的幻灯片!

该怎么办?我非常感谢任何有关如何完成此任务的指导方针/指针/建议。而且,我希望这个问题能帮助像我这样的其他新手使用出色的rCharts。

注意:我使用的是R的标准编辑器,而不是R-studio。我觉得前者不那么困惑。

最佳答案

以下所有说明均假定您已安装软件包的dev分支(slidify,slidifyLibraries和rCharts)。您可以使用install_github完成此操作。

pkgs <- c("slidify", "slidifyLibraries", "rCharts")
devtools::install_github(pkgs, "ramnathv", ref = "dev")

在slidify文档中包括rCharts viz的方法有两种,下面的甲板说明了这两种方法。如果像在R控制台中那样在代码块中打印绘图,则slidify会自动检测到您正在knitr session 中运行它,因此将生成的html保存到iframe并将其嵌入到平台中。或者,您可以内联指定图表,在这种情况下,您必须使用n1$show("inline"),还必须在YAML前题中包括ext_widgets: {rCharts: libraries/nvd3}

iframe方法是默认方法,建议使用这种方法来避免各种javascript文件和css之间的冲突。内联方法对于多个rCharts库效果很好,但是请确保在使用前进行检查。
---
title       : rCharts Integration
ext_widgets : {rCharts: libraries/nvd3}
mode: selfcontained
---

## NVD3 Plot Inline

```{r nvd3plot, results = 'asis', comment = NA, message = F, echo = F}
require(rCharts)
n1 <- nPlot(mpg ~ wt, data = mtcars, type = 'scatterChart')
n1$show('inline')
```

---

## NVD3 Plot Iframe

```{r nvd3plot2, results = 'asis', comment = NA, message = F, echo = F}
require(rCharts)
n1 <- nPlot(mpg ~ wt, data = mtcars, type = 'scatterChart')
n1
```

10-07 12:54