Usage
# S3 method for PM_data
plot(
x,
include = NA,
exclude = NA,
line = list(join = TRUE, pred = FALSE),
marker = TRUE,
color = NULL,
colors = "Set1",
names = NULL,
mult = 1,
outeq = 1,
block = 1,
tad = FALSE,
overlay = TRUE,
legend,
log = FALSE,
grid = FALSE,
xlab = "Time",
ylab = "Output",
title = "",
xlim,
ylim,
...
)
Arguments
- x
The name of an
PM_data
data object or loaded as a field in a PM_result object- include
A vector of subject IDs to include in the plot, e.g. c(1:3,5,15)
- exclude
A vector of subject IDs to exclude in the plot, e.g. c(4,6:14,16:20)
- line
Controls characteristics of lines as for all plotly plots. Here
line
is a list of two elements:join
Can either be a boolean or a list. If set toTRUE
or a list of plotly line attributes, it will generate line segments joining observations. If set toFALSE
, no segments will be generated. The default values for the elements of thejoin
list, all of which can be overriden are:color
Color of the segments. Default is "dodgerblue".width
Width of the segments, default 1.dash
Seeplotly::schema()
, traces > scatter > attributes > line > dash > values. Default is "solid". Example:line = list(join = list(color = "red", dash = "longdash", width = 2))
pred
Default isFALSE
, which means that predictions will not be included in the plot. To include predictions, supply the name of a population or posterior prediction object in a PM_result object, eg.run1$post
orrun1$pop
. To format the predictions, supplypred
as a list, with the prediction object first, followed by named options to control the prediction plot:icen Chooses the median or mean of each subject's Bayesian posterior parameter distribution. Default is "median", but could be "mean".
Other parameters to pass to plotly to control line characteristics that join the predictions, including
color
,width
, anddash
. For example:pred = list(run1$post, icen = "mean", color = "red", width = 2)
. Default formats are the same as for thejoin
argument, since normally one would not plot both lines joining observations and prediction lines, i.e., typical use would beline = list(join = F, pred = run1$post)
.
- marker
Formats the symbols plotting observations. Controls the plotting symbol for observations. This argument maps to the plotly marker object. It can be boolean or a list.
TRUE
will plot the marker with default characteristics.FALSE
will suppress marker plotting. If a list, can control many marker characteristics, including overriding defaults. Use the plotlyplotly::schema()
command in the console and navigate to traces > scatter > attributes > marker to see all the ways the marker can be formatted. Most common will be:color
Marker color.symbol
Plotting character. Seeplotly::schema()
, traces > scatter > attributes > marker > symbol > values.size
Character size in points.opacity
Ranging between 0 (fully transparent) to 1 (fully opaque).line
A list of additional attributes governing the outline for filled shapes, most commonly color and width.
Example:
marker = list(color = "red", symbol = "triangle", opacity = 0.8, line = list(color = "black", width = 2))
- color
Character vector naming a column in
x
to group by, e.g. "id" or a covariate like "gender"- colors
to use for groups. This can be a palette or a vector of colors. For accepted palette names see
RColorBrewer::brewer.pal.info
. Examples include "BrBG", or "Set2". An example vector could bec("red", "green", "blue")
. It is not necessary to specify the same number of colors as groups withincolor
, as colors will be interpolated to generate the correct number. The default whencolor
is specified is the "Set1" palette.- names
A character vector of names to label the groups if
legend = T
. This vector does need to be the same length as the number of groups withincolor
. Example:c("Male", "Female")
ifcolor = "gender"
and "gender" is a covariate in the data.- mult
Multiplication factor for y axis, e.g. to convert mg/L to ng/mL
- outeq
Which output equation to plot. Default is 1. Default is 1, but can be multiple if present in the data, e.g.
1:2
orc(1, 3)
.- block
Which block to plot, where blocks are defined by dose reset events (EVID = 4) in the data. Default is 1, but can be multiple if present in the data, as for
outeq
.- tad
Boolean operator to use time after dose rather than time after start. Default is
FALSE
.- overlay
Operator to overlay all time concentration profiles in a single plot. The default is
TRUE
. IfFALSE
, will trellisplot subjects one at a time. Can also be specified as a vector with number of rows and columns, e.g.c(3, 2)
for 3 rows and 2 columns of subject splots to include in each trellis.- legend
Controls display of legend. This argument maps to the plotly layout showlegend and legend arguments. It is either a boolean operator (most common) or a list of parameters to be supplied to plotly. See
plotly::schema()
> layout > layoutAttributes > legend and showlegend for more details on the available options for formatting. If legend is supplied as a list, the plotly layout > layoutAttributes > showlegend value will be set toTRUE
automatically.Examples:
legend = T
legend = list(orientation = "h", font = list(color = "blue"))
Default is
FALSE
unless groups are specified withcolor
above.- log
Boolean operator to plot the y axis in log base 10. This argument maps to the the yaxis type value in the layout object in plotly. Use the plotly
plotly::schema()
command in the console and navigate to layout > layoutAttributes > yaxis > type.Example:
log = T
- grid
Controls grid display. This argument maps to the xaxis and yaxis layout objects in plotly. Use the plotly
plotly::schema()
command in the console and navigate to layout > layoutAttributes > xaxis or yaxis > gridcolor or gridwidth. It is a Boolean operator. IfFALSE
, no grid is plotted. IfTRUE
, the default color grey and width 1 will be plotted at major tick marks. If a list, color and width can be customized.Examples:
grid = F
grid = list(gridcolor = "black", gridwidth = 2)
- xlab
Value for x axis label. This argument maps to the the xaxis title element of the layout object in plotly. It can simply be a character vector of length 1 that specifies the name of the axis, or it can be a list for greater control. Use the plotly
plotly::schema()
command in the console and navigate to layout > layoutAttributes > xaxis > title to see the ways to customize this axis label. In addition to the plotly attributes, a custom Pmetrics attributebold
may be included as a list element, either on its own or within the font list. The default forbold
isTRUE
.Examples:
xlab = "Time (h)"
xlab = list(text = "Time", bold = F, font = list(color = "red", family = "Arial", size = 10))
xlab = list(text = "Time", font = list(bold = T))
Default is "Time".
- ylab
Value for y axis label. This argument maps to the the yaxis title element of the layout object in plotly. See
xlab
for details. Ifxlab
is specified as a list with formatting, andylab
is simply a character label, then the formatting for thexlab
will be applied to theylab
. To formatylab
independently, specify a formatting list as forxlab
.Default is "Output".
- title
Plot title. This argument maps to the the title layout object in plotly. It can simply be a character vector of length 1 that specifies the name of the plot title, or it can be a list for greater control. Use the plotly
plotly::schema()
command in the console and navigate to layout > layoutAttributes > title to see other ways to customize the title using lists as additional arguments. In addition to the plotly attributes, a custom Pmetrics attributebold
may be included as a list element. The default forbold
isTRUE
.Examples:
title = "Observed vs. Predicted"
title = list(text = "Raw Data", font = list(color = "red", family = "Arial", size = 10, bold = T))
Default is to have no title.
- xlim
Limits of the x axis as a vector. This argument maps to the the xaxis range in the layout object in plotly. Use the plotly
plotly::schema()
command in the console and navigate to layout > layoutAttributes > xaxis > range.Example:
xlim = c(0,1)
- ylim
Limits of the y axis as a vector. This argument maps to the the yaxis range in the layout object in plotly. Use the plotly
plotly::schema()
command in the console and navigate to layout > layoutAttributes > yaxis > range.Example:
ylim = c(0,100)
- ...
Other attributes which can be passed to the layout > xaxis/yaxis in a plotly plot to further control formatting. Note that
log
,xlab
,ylab
,xlim
, andylim
are all controlled by the layout object, but are provided throughout Pmetrics plotly function arguments as shortcuts that map to layout elements. Therefore, the dots argument should be used to specify other aspects of the x axis, y axis, or both. Seeplotly::schema()
layout > layoutAttributes > xaxis/yaxis for options. To add to single axis, name it as a list. If attributes are specified without an enclosing xaxis or yaxis list, they will be applied to both axes.Examples:
NPex$data$plot(xaxis = list(tickcolor = "black", tickfont = list(family = "Arial", size = 14, color = "black"))) #applies to x axis only
NPex$data$plot(linecolor = "red", ticks = "inside") #applies to both axes
.
Details
This function will plot raw and fitted time and concentration data with a variety of options.
By default markers are included and have the following plotly properties:
list(symbol = "circle", color = "red", size = 10, opacity = 0.5, line = list(color = "black", width = 1))
.
Markers can be joined by lines, default is FALSE
. If chosen to be TRUE
,
the joining lines will have the following properties:
list(color = "dodgerblue", width = 1, dash = "solid"
.
The grid and legend are omitted by default.
See also
Other PMplots:
plot.MMopt()
,
plot.PM_cov()
,
plot.PM_cycle()
,
plot.PM_final()
,
plot.PM_model()
,
plot.PM_op()
,
plot.PM_pta()
,
plot.PM_sim()
,
plot.PM_valid()
Examples
library(PmetricsData)
# basic spaghetti plot
dataEx$plot()
# format line and marker
dataEx$plot(
marker = list(color = "blue", symbol = "square", size = 12, opacity = 0.4),
line = list(join = list(color = "orange"))
)
# include predictions with default format and suppress joining lines
dataEx$plot(
line = list(join = FALSE, pred = NPex$post),
xlim = c(119, 146)
)
# customize prediction lines
dataEx$plot(
line = list(
pred = list(NPex$post, color = "slategrey", dash = "dash"),
join = FALSE
)
)