by Ramnath Vaidyanathan, Dec 22, 2003
This is a short note to address a question from Sharon Machlis on the best way to embed a visualization created using rCharts, so that one can create a standalone HTML file using knit2html
. If you have not used rCharts, you can try it out using the online playground
@ramnath_vaidya Is this still best practice for knit2html to create rCharts file for use off your local machine? TNX! https://t.co/10RfiH9XgG
— Sharon Machlis (@sharon000) December 22, 2013
You will need the latest version of rCharts
(> 0.4) to use the approaches suggested in this note.
library(devtools)
install_github("rCharts", "ramnathv")
Let us first create a simple barplot using NVD3
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$set(width = 600)
We need to set the chunk options comment = NA
and results = "asis"
so that the resulting html is rendered asis and not marked up (which is the default in knitr). Make sure to set cache = F
for this chunk so that it is always run.
library(knitr)
opts_chunk$set(comment = NA, results = "asis", comment = NA, tidy = F)
The first option is to embed the chart as an inline iframe. It has the advantage of keeping the html standalone, but isolating the chart from the html on the page, thereby avoiding css and js conflicts. However, this feature is not supported by IE and Opera.
n1$show('iframesrc', cdn = TRUE)
This option embeds the chart inline in the html. It should work in all browsers that the charting library being used supports. However, it is susceptible to css and js conflicts.
n1$show('inline', include_assets = TRUE, cdn = TRUE)