To save time for repeated plotting,
this function is divided into
dataframes_graph()
and render_drake_graph()
.
vis_drake_graph(config = drake::read_drake_config(), file = character(0),
selfcontained = FALSE, build_times = "build", digits = 3,
targets_only = FALSE, split_columns = FALSE, font_size = 20,
layout = "layout_with_sugiyama", main = NULL, direction = "LR",
hover = TRUE, navigationButtons = TRUE, from = NULL, mode = c("out",
"in", "all"), order = NULL, subset = NULL, ncol_legend = 1,
full_legend = TRUE, make_imports = TRUE, from_scratch = FALSE, ...)
a drake_config()
configuration list.
You can get one as a return value from make()
as well.
Name of HTML file to save the graph.
If NULL
or character(0)
,
no file is saved and the graph is rendered and displayed within R.
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.
character string or logical.
If character, the choices are
1. "build"
: runtime of the command plus the time
it take to store the target or import.
2. "command"
: just the runtime of the command.
3. "none"
: no build times.
If logical, build_times
selects whether to show the
times from `build_times(..., type = "build")`` or use
no build times at all. See build_times()
for details.
number of digits for rounding the build times
logical, whether to skip the imports and only include the targets in the workflow plan.
logical, whether to break up the columns of nodes to make the aspect ratio of the rendered graph closer to 1:1. This improves the viewing experience, but the columns no longer strictly represent parallelizable stages of build items. (Although the targets/imports in each column are still conditionally independent, there may be more conditional independence than the graph indicates.)
numeric, font size of the node labels in the graph
name of an igraph layout to use, such as 'layout_with_sugiyama' or 'layout_as_tree'. Be careful with 'layout_as_tree': the graph is a directed acyclic graph, but not necessarily a tree.
character string, title of the graph
an argument to visNetwork::visHierarchicalLayout()
indicating the direction of the graph.
Options include 'LR', 'RL', 'DU', and 'UD'.
At the time of writing this, the letters must be capitalized,
but this may not always be the case ;) in the future.
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.
logical, whether to add navigation buttons with
visNetwork::visInteraction(navigationButtons = TRUE)
Optional collection of target/import names.
If from
is nonempty,
the graph will restrict itself to
a neighborhood of from
.
Control the neighborhood with
mode
and order
.
Which direction to branch out in the graph
to create a neighborhood around from
.
Use "in"
to go upstream,
"out"
to go downstream,
and "all"
to go both ways and disregard
edge direction altogether.
How far to branch out to create
a neighborhood around from
(measured
in the number of nodes). Defaults to
as far as possible.
Optional character vector of of target/import names.
Subset of nodes to display in the graph.
Applied after from
, mode
, and order
.
Be advised: edges are only kept for adjacent nodes in subset
.
If you do not select all the intermediate nodes,
edges will drop from the graph.
number of columns in the legend nodes.
To remove the legend entirely, set ncol_legend
to NULL
or 0
.
logical. If TRUE
, all the node types
are printed in the legend. If FALSE
, only the
node types used are printed in the legend.
logical, whether to make the imports first.
Set to FALSE
to increase speed and risk using obsolete information.
arguments passed to visNetwork()
.
A visNetwork graph.
# NOT RUN {
test_with_dir("Quarantine side effects.", {
config <- load_basic_example() # Get the code with drake_example("basic").
# Plot the network graph representation of the workflow.
vis_drake_graph(config, width = '100%') # The width is passed to visNetwork
config <- make(my_plan) # Run the project, build the targets.
vis_drake_graph(config) # The red nodes from before are now green.
# Plot a subgraph of the workflow.
vis_drake_graph(
config,
from = c("small", "reg2"),
to = "summ_regression2_small"
)
})
# }
Run the code above in your browser using DataLab