d3r

by timelyportfolio

timelyportfolio / d3r

d3.js helpers for R

129 Stars 16 Forks Last release: about 1 year ago (v0.8.7) Other 158 Commits 15 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

CRAN\_Status\_Badge Travis-CI Build
Status Coverage
Status

Why d3r?

Please see this Building Widgets blog post Why d3r?.

Installing d3r

d3r
is on CRAN, so install with
install.packages("d3r")
or for the absolute latest use
devtools
.
devtools::install_github("timelyportfolio/d3r")

d3 Dependency Functions

d3r
makes
d3.js
dependency injection in R easy with
d3_dep_v3()
,
d3_dep_v4()
, and
d3_dep_v5()
. These functions work well with
htmltools::tags
.
library(htmltools)
library(d3r)

check web developer tools to see d3 is available

browsable( attachDependencies( tagList(), d3_dep_v5() ) )

or include directly in a taglist; I prefer this method.

browsable( tagList( h1("I have d3 version ", span(id="version")), tags$script("d3.select('#version').text(d3.version)"), d3_dep_v5() ) )

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
htmlwidget
.

d3 Hierarchy from data.frame

Building

d3.js
hierarchies can be very difficult.
d3r::d3_nest()
will convert
table
and
data.frame
to a nested
d3.js
hierarchy ready for work with
d3-hierarchy
.
d3_nest(as.data.frame(Titanic))

As another example, let’s go from

treemap
to
d3.js
.
library(treemap)
library(d3r)

d3_nest( treemap::random.hierarchical.data(), value_cols = "x" )

d3 Hierarchy from partykit / rpart

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
d3.js
.
#devtools::install_github("timelyportfolio/d3treeR")

library(d3treeR) library(d3r)

example from ?rpart

data("kyphosis", package="rpart") rp

d3 Network from igraph

igraph
to
d3.js
network of
nodes
and
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))

Todo

I have a whole lot of ideas. Please let me know yours, and let’s make this package great.

Code of Conduct

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.