Blocks for data visualization using base R graphics can be created via
new_plot_block()
.
Usage
new_plot_block(server, ui, class, ctor = sys.parent(), ...)
new_scatter_block(x = character(), y = character(), ...)
Arguments
- server
A function returning
shiny::moduleServer()
- ui
A function with a single argument (
ns
) returning ashiny.tag
- class
Block subclass
- ctor
String-valued constructor name or function/frame number (mostly for internal use or when defining constructors for virtual classes)
- ...
Forwarded to
new_plot_block()
andnew_block()
- x, y
Columns to place on respective axes
Details
Due to the current block evaluation procedure, where block evaluation is
separated from block "rendering" (via shiny::renderPlot()
) integration of
base R graphics requires some mechanism to achieve this decoupling. This
is implemented by adding a plot
attribute to the result of
block_eval()
, generated with grDevices::recordPlot()
and containing the
required information to re-create the plot at a later time. As part of
block_output()
, the attribute is retrieved and passed to
grDevices::replayPlot()
. Consequently, any block that inherits from
plot_block
is required to support this type of decoupling.
Scatter block
Mainly for demonstration purposes, this block draws a scattter plot using
base::plot()
. In its current simplistic implementation, apart from axis
labels (fixed to the corresponding column names), no further plotting
options are available and for any "production" application, a more
sophisticated (set of) block(s) for data visualization will most likely be
required.