View source: R/collapsibleTree.R
collapsibleTree | R Documentation |
Interactive Reingold-Tilford tree diagram created using D3.js, where every node can be expanded and collapsed by clicking on it.
collapsibleTree(
df,
...,
inputId = NULL,
attribute = "leafCount",
aggFun = sum,
fill = "lightsteelblue",
linkLength = NULL,
fontSize = 10,
tooltip = FALSE,
tooltipHtml = NULL,
nodeSize = NULL,
collapsed = TRUE,
zoomable = TRUE,
width = NULL,
height = NULL
)
## S3 method for class 'data.frame'
collapsibleTree(
df,
hierarchy,
root = deparse(substitute(df)),
inputId = NULL,
attribute = "leafCount",
aggFun = sum,
fill = "lightsteelblue",
fillByLevel = TRUE,
linkLength = NULL,
fontSize = 10,
tooltip = FALSE,
nodeSize = NULL,
collapsed = TRUE,
zoomable = TRUE,
width = NULL,
height = NULL,
...
)
## S3 method for class 'Node'
collapsibleTree(
df,
hierarchy_attribute = "level",
root = df$name,
inputId = NULL,
attribute = "leafCount",
aggFun = sum,
fill = "lightsteelblue",
linkLength = NULL,
fontSize = 10,
tooltip = FALSE,
tooltipHtml = NULL,
nodeSize = NULL,
collapsed = TRUE,
zoomable = TRUE,
width = NULL,
height = NULL,
...
)
df |
a |
... |
other arguments to pass onto S3 methods that implement
this generic function - |
inputId |
the input slot that will be used to access the selected node (for Shiny). Will return a named list of the most recently clicked node, along with all of its parents. |
attribute |
numeric column not listed in hierarchy that will be used for tooltips, if applicable. Defaults to 'leafCount', which is the cumulative count of a node's children |
aggFun |
aggregation function applied to the attribute column to determine
values of parent nodes. Defaults to |
fill |
either a single color or a mapping of colors:
|
linkLength |
length of the horizontal links that connect nodes in pixels. (optional, defaults to automatic sizing) |
fontSize |
font size of the label text in pixels |
tooltip |
tooltip shows the node's label and attribute value. |
tooltipHtml |
column name (possibly containing html) to override default tooltip
contents, allowing for more advanced customization. Applicable only for |
nodeSize |
numeric column that will be used to determine relative node size. Default is to have a constant node size throughout. 'leafCount' can also be used here (cumulative count of a node's children), or 'count' (count of node's immediate children). |
collapsed |
the tree's children will start collapsed by default
|
zoomable |
pan and zoom by dragging and scrolling |
width |
width in pixels (optional, defaults to automatic sizing) |
height |
height in pixels (optional, defaults to automatic sizing) |
hierarchy |
a character vector of column names that define the order
and hierarchy of the tree network. Applicable only for |
root |
label for the root node |
fillByLevel |
which order to assign fill values to nodes.
|
hierarchy_attribute |
name of the |
Christopher Gandrud: http://christophergandrud.github.io/networkD3/.
d3noob: https://bl.ocks.org/d3noob/43a860bc0024792f8803bba8ca0d5ecd.
collapsibleTree(warpbreaks, c("wool", "tension", "breaks"))
# Data from US Forest Service DataMart
species <- read.csv(system.file("extdata/species.csv", package = "collapsibleTree"))
collapsibleTree(df = species, c("REGION", "CLASS", "NAME"), fill = "green")
# Visualizing the order in which the node colors are filled
library(RColorBrewer)
collapsibleTree(
warpbreaks, c("wool", "tension"),
fill = brewer.pal(9, "RdBu"),
fillByLevel = TRUE
)
collapsibleTree(
warpbreaks, c("wool", "tension"),
fill = brewer.pal(9, "RdBu"),
fillByLevel = FALSE
)
# Tooltip can be mapped to an attribute, or default to leafCount
collapsibleTree(
warpbreaks, c("wool", "tension", "breaks"),
tooltip = TRUE,
attribute = "breaks"
)
# Node size can be mapped to any numeric column, or to leafCount
collapsibleTree(
warpbreaks, c("wool", "tension", "breaks"),
nodeSize = "breaks"
)
# collapsibleTree.Node example
data(acme, package="data.tree")
acme$Do(function(node) node$cost <- data.tree::Aggregate(node, attribute = "cost", aggFun = sum))
acme$Do(function(node) node$lessThanMillion <- node$cost < 10^6)
collapsibleTree(
acme,
nodeSize = "cost",
attribute = "cost",
tooltip = TRUE,
collapsed = "lessThanMillion"
)
# Emulating collapsibleTree.data.frame using collapsibleTree.Node
species <- read.csv(system.file("extdata/species.csv", package = "collapsibleTree"))
hierarchy <- c("REGION", "CLASS", "NAME")
species$pathString <- paste(
"species",
apply(species[,hierarchy], 1, paste, collapse = "//"),
sep = "//"
)
df <- data.tree::as.Node(species, pathDelimiter = "//")
collapsibleTree(df)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.