IFrame Visualizations
Most visualizations require more than basic HTML. Embedding HTML directly in your console also risks conflicts between different parts of your code. The most flexible way to embed a web resource is using an IFrame.
R
library("cdsw") iframe(src="https://www.youtube.com/embed/8pHzROP1D-w", width="854px", height="510px")
Python
from IPython.display import HTML HTML('<iframe width="854" height="510" src="https://www.youtube.com/embed/8pHzROP1D-w"></iframe>')
You can generate HTML files within your console and display them in IFrames using the /cdn folder. The cdn folder persists and services static assets generated by your engine runs. For instance, you can embed a full HTML file with IFrames.
R
library("cdsw") f <- file("/cdn/index.html") html.content <- paste("<p>Here is a normal random variate:", rnorm(1), "</p>") writeLines(c(html.content), f) close(f) iframe("index.html")
Python
from IPython.display import HTML import random html_content = "<p>Here is a normal random variate: %f </p>" % random.normalvariate(0,1) file("/cdn/index.html", "w").write(html_content) HTML("<iframe src=index.html>")
Cloudera AI uses this feature to support many rich plotting libraries such as htmlwidgets, Bokeh, and Plotly.