I tried to explain the purpose of
d3r in this Building Widgets blog post Why d3r?.
d3r is on CRAN, so install with
install.packages("d3r") or for the absolute latest use
d3.js dependency injection in R easy with two functions
d3_dep_v4(). These functions work well with
library(htmltools) library(d3r) # check web developer tools to see d3 is available browsable( attachDependencies( tagList(), d3_dep_v4() ) ) # or include directly in a taglist browsable( tagList( h1("I have d3"), d3_dep_v4() ) )
Also, I will commit to keeping
d3r up-to-date with
d3.js, so you’ll no longer need multiple copies of
d3.js for your
htmlwidgets. If you are a
htmlwidget author, you will no longer need to worry every time
d3.js gets a new release. See
treebar lines for an example of using
d3r with your
d3.js hierarchies can be very difficult.
d3r::d3_nest() will convert
data.frame to a nested
d3.js hierarchy ready for work with the
As another example, let’s go from
library(treemap) library(d3r) d3_nest( treemap::random.hierarchical.data(), value_cols = "x" )
rpart and similar objects in
R are very difficult to convert but make perfect subjects for
d3 hierarchical layouts.
d3_party helps convert these objects for easy usage with
#devtools::install_github("timelyportfolio/d3treeR") library(d3treeR) library(d3r) # example from ?rpart data("kyphosis", package="rpart") rp <- rpart::rpart( Kyphosis ~ Age + Number + Start, data = kyphosis ) # get the json hierarchy d3_party(tree=rp) # interactive plot with d3treeR d3tree2( d3_party(tree=rp), celltext="description", valueField="n" )
d3.js network of
links is a very common conversion.
d3r::d3_igraph will do this for you.
library(igraph) library(d3r) d3_igraph(igraph::watts.strogatz.game(1, 50, 4, 0.05))
I have a whole lot of ideas. Please let me know yours, and let’s make this package great.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.