plotWF: Visualize SPR workflow and status

View source: R/plotwf.R

plotWFR Documentation

Visualize SPR workflow and status

Description

Visualize SPR workflow and status. plotWF is the general function that creates the plot. plotwfOutput and renderPlotwf are used in Shiny UI and server respectively, similar to plotOutput and renderPlot.

Usage

plotWF(
  sysargs,
  width = NULL, height = NULL,
  elementId = NULL,
  responsive = TRUE,
  branch_method = "auto",
  branch_no = NULL,
  layout = "compact",
  no_plot = FALSE,
  plot_method = "svg",
  out_format = "plot",
  out_path = NULL,
  show_legend = TRUE,
  mark_main_branch = FALSE,
  rstudio = FALSE,
  in_log = FALSE,
  rmarkdown = "detect",
  verbose = FALSE,
  show_warns = FALSE,
  plot_ctr = TRUE,
  pan_zoom = FALSE,
  exit_point = 0
)

plotwfOutput(
  outputId,
  width = '100%',
  height = '400px'
)

renderPlotwf(
  expr,
  env = parent.frame(),
  quoted = FALSE
)

Arguments

sysargs

object of class SYSargsList.

width

string, a valid CSS string for width, like "500px", "100%".

height

string, a valid CSS string for height, like "500px", "100%".

elementId

string, optional ID value for the plot.

responsive

bool, should the plot be responsive? useful in Rstudio built-in viewer, Rmarkdown, Shiny or embed it into other web pages.

branch_method

string, one of "auto", "choose". How to determine the main branch of the workflow. "auto" will be determined by internal alrgothrim: Branches connecting the frist and last step and/or the longest will be favored. "choose" will list all possible branches and you can make a choice.

branch_no

numeric, only works if branch_method == "choose". Specify a branch number to be the main branch instead of choosing from the prompt. This option can be good if you are in a non-interactive mode, e.g. rendering Rmd.

layout

string, one of "compact", "vertical", "horizontal", "execution".

no_plot

bool, if you want to assgin the plot to a variable and do not want to see it interactively, change this to FALSE.

plot_method

string, one of "svg", "png", how to make plot, use svg or png to embed the plot.

out_format

string, one of "plot", "html", "dot", "dot_print"

  • plot: directly open your viewer or browser of the plot

  • html: save the plot to a html file

  • dot: save the plot in DOT language, need a dot engine to remake the plot

  • dot_print: directly cat the DOT code on console

See details section if one wish to generate other output format, such as jpg or png.

out_path

string, if the out_format is not "plot" or "dot_print", provide a path of where to save the plot.

show_legend

bool, show plot legend?

mark_main_branch

bool, color the main branch on the plot?

rstudio

bool, if you are using Rstudio, open the built-in viewer to see the plot? Default is no, open the browser tab to see it plot. The default viewer is too small to see the full plot clearly, so we recommend to use the browser tab. However, if you are using this plot in Shiny apps, always turn rstudio = TRUE.

in_log

bool, is this plot been made in a SPR log file? If TRUE will add links of steps to the corresponding log sections.

rmarkdown

are you rendering this plot in a Rmarkdown document? default value is "detect", this function will determine based on current R environment, or you can force it to be TRUE or FALSE.

verbose

bool, turn on verbose mode will give you more information.

show_warns

bool, print the warning messages on the plot?.

plot_ctr

bool, add the plot control panel to the plot? This requires you to have internet connection. It will download some additional javascript libraries, and allow you to save the plot as png, jpg, svg, pdf or graphviz directly from the browser.

pan_zoom

bool, allow panning and zooming of the plot? Use mouse wheel or touch pad to zoom in and out of the plot. You need to have internet connection, additional javascript libraries will be loaded automatically online. Cannot be used with responsive = TRUE together. If both TRUE, responsive will be automatically set to FALSE.

exit_point

numeric, for advanced debugging only, see details

outputId

string, shiny output ID

expr

An expression that generates a plotwf, like plotWF(sal)

env

The environment in which to evaluate expr.

quoted

Is expr a quoted expression (with quote())? This is useful if you want to save an expression in a variable.

Details

layout

  • compact: try to plot steps as close as possible.

  • vertical: main branch will be placed vertically and side branches will be placed on the same horizontal level and sub steps of side branches will be placed vertically.

  • horizontal: main branch is placed horizontally and side branches and sub steps will be placed vertically.

  • execution: a linear plot to show the workflow execution order of all steps.

exit_point

return intermediate results at different points and exit the function

  • 0: no early exit

  • 1: after all branches are found, return tree

  • 2: after the new tree has been built, return new nodes

  • 3: after dot translation, return graph string

Rmarkdown

Rmarkdown will change some of the format and cause conflicts. If the plot can be rendered outside Rmd but cannot within Rmd, try to turn this option on. Some additional javascript processing will be performed to avoid the conflict but may cause unknown issues.

Other output formats

The plot rendering uses htmlwidgets, which generates an interactive HTML page. Saving these plots directly to standard image files, such as png, is not possible. However, a few workarounds exist to save to these image formats:

  • 1: use webshot2::webshot function.

  • 2: use the interactive panel located on the top-left corner to download as an image after the plot is rendered.

  • 3: use plotWF(sal, plot_method = "png") to embed the plot as png, and then right-click to save the image.

Please see our website for examples: https://systempipe.org/sp/spr/sp_run/step_vis/

Shiny

When the plot is rendered in a Shiny app, the rstudio option must be turned on, plotWF(sal, rstudio = TRUE, ...).

Value

see out_format and exit_point


tgirke/systemPipeR documentation built on Sept. 24, 2024, 9:48 a.m.