Javascript and D3 for R users, part 2: running off the R server instead of Python
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Thank you all for the positive responses to Basics of JavaScript and D3 for R Users! Quick update: last time we had to dabble in a tiny bit of Python to start a local server, in order to actually run JavaScript and D3 examples on our home computer… However, commenter Shankar had the great idea of using the R server instead. He provided some example code, but reported that it didn’t work with all the examples.
Here’s my alternative code, which works with all the D3 examples I’ve tried so far. Unlike Shankar’s approach with lower-level functions, I found it simpler to use Jeffrey Horner’s excellent Rook package.
# Load the Rook library library(Rook) # Where is your d3 directory located? myD3dir <- 'C:/Downloads' # Start the server s <- Rhttpd$new() s$start(quiet=TRUE) # To view a different D3 example, # change the directory and .html file names below # and rerun s$add() and s$browse() s$add( app=Builder$new( Static$new( # List all the subdirectories that contain # any files it will need to access (.js, .css, .html, etc) urls = c('/d3','/d3/examples','/d3/examples/choropleth'), root = myD3dir ), Redirect$new('/d3/examples/choropleth/choropleth.html') ), name='d3' ) s$browse(2) # browse(1) would load the default RookTest app instead # When you're done, # clean up by stopping and removing the server s$stop() s$remove(all=TRUE) rm(s)
If I understand the Rook documentation correctly, you just can’t browse directories using R’s local server. So you’ll have to type in the exact directory and HTML file for each example separately. But otherwise, this should be a simple way to play with D3 for anyone who’d rather stick within R instead of installing Python.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.