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.