Learn R Programming

AdhereR (version 0.4)

plot.CMA0: Plot CMA0 objects.

Description

Plots the events (prescribing or dispensing) data encapsulated in a basic CMA0 object.

Usage

# S3 method for CMA0
plot(x, ..., patients.to.plot = NULL, duration = NA,
  align.all.patients = FALSE, show.period = c("dates", "days")[2],
  period.in.days = 90, show.legend = TRUE, legend.x = "right",
  legend.y = "bottom", legend.bkg.opacity = 0.5, legend.cex = 0.75,
  legend.cex.title = 1, cex = 1, cex.axis = 0.75, cex.lab = 1,
  col.cats = rainbow, lty.event = "solid", lwd.event = 2,
  pch.start.event = 15, pch.end.event = 16, print.dose = FALSE,
  cex.dose = 0.75, print.dose.outline.col = "white",
  print.dose.centered = FALSE, plot.dose = FALSE,
  lwd.event.max.dose = 8,
  plot.dose.lwd.across.medication.classes = FALSE,
  col.continuation = "black", lty.continuation = "dotted",
  lwd.continuation = 1, col.na = "lightgray",
  highlight.followup.window = TRUE, followup.window.col = "green",
  highlight.observation.window = TRUE,
  observation.window.col = "yellow", observation.window.density = 35,
  observation.window.angle = -30, observation.window.opacity = 0.3,
  bw.plot = FALSE, print.CMA = TRUE, plot.CMA = TRUE,
  CMA.plot.ratio = 0.1, min.plot.size.in.characters.horiz = 10,
  min.plot.size.in.characters.vert = 0.5, max.patients.to.plot = 100)

Arguments

x

A CMA0 or derived object, representing the CMA to plot

...

other possible parameters

patients.to.plot

A vector of strings containing the list of patient IDs to plot (a subset of those in the cma object), or NULL for all

duration

A number, the total duration (in days) of the whole period to plot; in NA it is automatically determined from the event data such that the whole dataset fits.

align.all.patients

Logical, should all patients be aligned (i.e., the actual dates are discarded and all plots are relative to the earliest date)?

show.period

A string, if "dates" show the actual dates at the regular grid intervals, while for "days" (the default) shows the days since the beginning; if align.all.patients == TRUE, show.period is taken as "days".

period.in.days

The number of days at which the regular grid is drawn (or 0 for no grid).

show.legend

Logical, should the legend be drawn?

legend.x

The position of the legend on the x axis; can be "left", "right" (default), or a numeric value.

legend.y

The position of the legend on the y axis; can be "bottom" (default), "top", or a numeric value.

legend.bkg.opacity

A number between 0.0 and 1.0 specifying the opacity of the legend background.

cex, cex.axis, cex.lab, legend.cex, legend.cex.title

numeric values specifying the cex of the various types of text.

col.cats

A color or a function that specifies the single colour or the colour palette used to plot the different medication; by default rainbow, but we recommend, whenever possible, a colorblind-friendly palette such as viridis or colorblind_pal.

lty.event, lwd.event, pch.start.event, pch.end.event

The style of the event (line style, width, and start and end symbols).

print.dose

Logical, should the daily dose be printed as text?

cex.dose

Numeric, if daily dose is printed, what text size to use?

print.dose.outline.col

If NA, don't print dose text with outline, otherwise a color name/code for the outline.

print.dose.centered

Logical, print the daily dose centered on the segment or slightly below it?

plot.dose

Logical, should the daily dose be indicated through segment width?

lwd.event.max.dose

Numeric, the segment width corresponding to the maximum daily dose (must be >= lwd.event but not too big either).

plot.dose.lwd.across.medication.classes

Logical, if TRUE, the line width of the even is scaled relative to all medication classes (i.e., relative to the global minimum and maximum doses), otherwise it is scale relative only to its medication class.

col.continuation, lty.continuation, lwd.continuation

The style of the "continuation" lines connecting consecutive events (colour, line style and width).

col.na

The colour used for missing event data.

highlight.followup.window

Logical, should the follow-up window be plotted?

followup.window.col

The follow-up window's colour.

highlight.observation.window

Logical, should the observation window be plotted?

observation.window.col, observation.window.density, observation.window.angle, observation.window.opacity

Attributes of the observation window (colour, shading density, angle and opacity).

bw.plot

Logical, should the plot use grayscale only (i.e., the gray.colors function)?

print.CMA

Logical, should the CMA values be printed?

plot.CMA

Logical, should the CMA values be represented graphically?

CMA.plot.ratio

A number, the proportion of the total horizontal plot space to be allocated to the CMA plot. Numeric, the minimum size of the plotting surface in characters; horizontally (min.plot.size.in.characters.horiz) referes to the the whole duration of the events to plot; vertically (min.plot.size.in.characters.vert) referes to a single event.

min.plot.size.in.characters.horiz, min.plot.size.in.characters.vert

Numeric, the minimum size of the plotting surface in characters; horizontally (min.plot.size.in.characters.horiz) referes to the the whole duration of the events to plot; vertically (min.plot.size.in.characters.vert) referes to a single event.

max.patients.to.plot

Numeric, the maximum patients to attempt to plot.

Details

The x-axis represents time (either in days since the earliest date or as actual dates), with consecutive events represented as ascending on the y-axis.

Each event is represented as a segment with style lty.event and line width lwd.event starting with a pch.start.event and ending with a pch.end.event character, coloured with a unique color as given by col.cats, extending from its start date until its end date. Consecutive events are thus represented on consecutive levels of the y-axis and are connected by a "continuation" line with col.continuation colour, lty.continuation style and lwd.continuation width; these continuation lines are purely visual guides helping to perceive the sequence of events, and carry no information about the availability of medication in this interval.

When several patients are displayed on the same plot, they are organized vertically, and alternating bands (white and gray) help distinguish consecutive patients. Implicitly, all patients contained in the cma object will be plotted, but the patients.to.plot parameter allows the selection of a subset of patients.

Examples

Run this code
# NOT RUN {
cma0 <- CMA0(data=med.events,
             ID.colname="PATIENT_ID",
             event.date.colname="DATE",
             event.duration.colname="DURATION",
             event.daily.dose.colname="PERDAY",
             medication.class.colname="CATEGORY",
             followup.window.start=0,
             followup.window.start.unit="days",
             followup.window.duration=2*365,
             followup.window.duration.unit="days",
             observation.window.start=30,
             observation.window.start.unit="days",
             observation.window.duration=365,
             observation.window.duration.unit="days",
             date.format="%m/%d/%Y",
             summary="Base CMA");
plot(cma0, patients.to.plot=c("1","2"));
# }

Run the code above in your browser using DataLab