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.