This function is called inside vis_drake_graph(), which typical users call more often.

  file = character(0),
  layout = NULL,
  direction = NULL,
  hover = TRUE,
  main = graph_info$default_title,
  selfcontained = FALSE,
  navigationButtons = TRUE,
  ncol_legend = 1,
  collapse = TRUE,
  on_select = NULL,
  level_separation = NULL,



List of data frames generated by drake_graph_info(). There should be 3 data frames: nodes, edges, and legend_nodes.


Name of a file to save the graph. If NULL or character(0), no file is saved and the graph is rendered and displayed within R. If the file ends in a .png, .jpg, .jpeg, or .pdf extension, then a static image will be saved. In this case, the webshot package and PhantomJS are required: install.packages("webshot"); webshot::install_phantomjs(). If the file does not end in a .png, .jpg, .jpeg, or .pdf extension, an HTML file will be saved, and you can open the interactive graph using a web browser.






Logical, whether to show the command that generated the target when you hover over a node with the mouse. For imports, the label does not change with hovering.


Character string, title of the graph.


Logical, whether to save the file as a self-contained HTML file (with external resources base64 encoded) or a file with external resources placed in an adjacent directory. If TRUE, pandoc is required. The selfcontained argument only applies to HTML files. In other words, if file is a PNG, PDF, or JPEG file, for instance, the point is moot.


Logical, whether to add navigation buttons with visNetwork::visInteraction(navigationButtons = TRUE)


Number of columns in the legend nodes. To remove the legend entirely, set ncol_legend to NULL or 0.


Logical, whether to allow nodes to collapse if you double click on them. Analogous to visNetwork::visOptions(collapse = TRUE).


defines node selection event handling. Either a string of valid JavaScript that may be passed to visNetwork::visEvents(), or one of the following: TRUE, NULL/FALSE. If TRUE , enables the default behavior of opening the link specified by the on_select_col given to drake_graph_info(). NULL/FALSE disables the behavior.


Numeric, levelSeparation argument to visNetwork::visHierarchicalLayout(). Controls the distance between hierarchical levels. Consider setting if the aspect ratio of the graph is far from 1. Defaults to 150 through visNetwork.


Arguments passed to visNetwork().


A visNetwork graph.


For enhanced interactivity in the graph, see the mandrake package:

See also


if (FALSE) { isolate_example("Quarantine side effects.", { if (suppressWarnings(require("knitr"))) { load_mtcars_example() # Get the code with drake_example("mtcars"). if (requireNamespace("visNetwork", quietly = TRUE)) { # Instead of jumping right to vis_drake_graph(), get the data frames # of nodes, edges, and legend nodes. vis_drake_graph(my_plan) # Jump straight to the interactive graph. # Get the node and edge info that vis_drake_graph() just plotted: graph <- drake_graph_info(my_plan) # You can pass the data frames right to render_drake_graph() # (as in vis_drake_graph()) or you can create # your own custom visNewtork graph. render_drake_graph(graph) } } }) }