在Markdown中嵌入rChart

时间:2014-07-07 13:33:54

标签: r rcharts nvd3.js

我正在尝试在Markdown文档中嵌入NVD3图表。我在Ubuntu64系统上使用RStudio 0.98.932,R 3.1.0,rCharts 0.4.2,浏览器是Chrome。

来自this链接的说明/代码:

 ```{r}

library(rCharts)
library(knitr)
opts_chunk$set(comment = NA, results = "asis", comment = NA, tidy = F)

hair_eye_male = subset(as.data.frame(HairEyeColor), Sex == "Male")
n1 <- nPlot(Freq ~ Hair, group = 'Eye', 
  data = hair_eye_male, type = 'multiBarChart'
)
n1$set(width = 600)
# n1$show('iframesrc', cdn = TRUE)  # option 1
# n1$show('inline', include_assets = TRUE, cdn = TRUE)  # option 2
```

两个选项[n1 $ show]都没有用,我只是在浏览器中获取代码。还有其他方法可以在Markdown中包含NVD3文档吗?

2 个答案:

答案 0 :(得分:4)

要使rCharts与knit2html一起使用,您需要使用带有参数include_assets = TRUE的print方法。这是因为knitr不会自动添加rCharts图所需的js和css资产。这是一个最小的工作示例。

## MorrisJS with Knit2HTML

```{r results = 'asis', comment = NA}
require(rCharts)
data(economics, package = 'ggplot2')
econ <- transform(economics, date = as.character(date))
m1 <- mPlot(x = 'date', y = c('psavert', 'uempmed'), type = 'Line',
  data = econ)
m1$set(pointSize = 0, lineWidth = 1)
m1$print('chart2', include_assets = TRUE)
```

请注意,如果您打算在RPub上发布图表,则需要使用m1$print('chart2', include_assets = TRUE, cdn = TRUE),否则JS和CSS资产将从您的本地库提供。

来源:Knitr HTML in R Markdown

答案 1 :(得分:2)

这段代码对我有用。我正在使用你提到的ubuntu64和相同的配置。

```{r, echo=FALSE,results='asis',comment=NA}
library(rCharts)
hair_eye_male <- subset(as.data.frame(HairEyeColor), Sex == "Male")
n1 <- nPlot(Freq ~ Hair, group = "Eye", data = hair_eye_male, type = "multiBarChart")
n1$show('iframesrc',cdn=TRUE)
```

注意:必须在块选项中写入results ='asis'和comment = NA ,而不是像在代码块中那样使用opts_chunk$set你粘贴到copy.com的内容。