最近我一直在试验slidify
和rCharts
。使用slitify生成简单图表的教程很有解释性,但我找不到任何关于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")
有两种方法可以在您的slitify文档中包含rCharts
viz,下面的甲板说明了这两种方法。如果你在代码块中打印一个绘图,就像你在R控制台中那样,slitify会自动检测到你正在编织器会话中运行它,因此将生成的html保存到iframe中并嵌入到deck中。或者,您可以内联指定图表,在这种情况下,您必须使用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
```