我正在尝试在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文档吗?
答案 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资产将从您的本地库提供。
答案 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的内容。