Learn R Programming

Hmisc (version 5.1-2)

plotlyM: plotly Multiple

Description

Generates multiple plotly graphics, driven by specs in a data frame

Usage

plotlyM(
  data,
  x = ~x,
  y = ~y,
  xhi = ~xhi,
  yhi = ~yhi,
  htext = NULL,
  multplot = NULL,
  strata = NULL,
  fitter = NULL,
  color = NULL,
  size = NULL,
  showpts = !length(fitter),
  rotate = FALSE,
  xlab = NULL,
  ylab = NULL,
  ylabpos = c("top", "y"),
  xlim = NULL,
  ylim = NULL,
  shareX = TRUE,
  shareY = FALSE,
  height = NULL,
  width = NULL,
  nrows = NULL,
  ncols = NULL,
  colors = NULL,
  alphaSegments = 1,
  alphaCline = 0.3,
  digits = 4,
  zeroline = TRUE
)

Value

plotly object produced by subplot

Arguments

data

input data frame

x

formula specifying the x-axis variable

y

formula for y-axis variable

xhi

formula for upper x variable limits (x taken to be lower value)

yhi

formula for upper y variable limit (y taken to be lower value)

htext

formula for hovertext variable

multplot

formula specifying a variable in data that when stratified on produces a separate plot

strata

formula specifying an optional stratification variable

fitter

a fitting such as loess that comes with a predict method. Alternatively specify fitter='ecdf' to use an internal function for computing and displaying ECDFs, which moves the analysis variable from the y-axis to the x-axis

color

plotly formula specifying a color variable or e.g. ~ I('black'). To keep colors constant over multiple plots you will need to specify an AsIs color when you don't have a variable representing color groups.

size

plotly formula specifying a symbol size variable or AsIs

showpts

if fitter is given, set to TRUE to show raw data points in addition to smooth fits

rotate

set to TRUE to reverse the roles of x and y, for example to get horizontal dot charts with error bars

xlab

x-axis label. May contain html.

ylab

a named vector of y-axis labels, possibly containing html (see example below). The names of the vector must correspond to levels of the multplot variable. ylab can be unnamed if multplot is not used.

ylabpos

position of y-axis labels. Default is on top left of plot. Specify ylabpos='y' for usual y-axis placement.

xlim

2-vector of x-axis limits, optional

ylim

2-vector of y-axis limits, optional

shareX

specifies whether x-axes should be shared when they align vertically over multiple plots

shareY

specifies whether y-axes should be shared when they align horizontally over multiple plots

height

height of the combined image in pixels

width

width of the combined image in pixels

nrows

the number of rows to produce using subplot

ncols

the number of columns to produce using subplot (specify at most one of nrows,ncols)

colors

the color palette. Leave unspecified to use the default plotly palette

alphaSegments

alpha transparency for line segments (when xhi or yhi is not NA)

alphaCline

alpha transparency for lines used to connect points

digits

number of significant digits to use in constructing hovertext

zeroline

set to FALSE to suppress vertical line at x=0

Author

Frank Harrell

Details

Generates multiple plotly traces and combines them with plotly::subplot. The traces are controlled by specifications in data frame data plus various arguments. data must contain these variables: x, y, and tracename (if color is not an "AsIs" color such as ~ I('black')), and can contain these optional variables: xhi, yhi (rows containing NA for both xhi and yhi represent points, and those with non-NA xhi or yhi represent segments, connect (set to TRUE for rows for points, to connect the symbols), legendgroup (see plotly documentation), and htext (hovertext). If the color argument is given and it is not an "AsIs" color, the variable named in the color formula must also be in data. Likewise for size. If the multplot is given, the variable given in the formula must be in data. If strata is present, another level of separate plots is generated by levels of strata, within levels of multplot.

If fitter is specified, x,y coordinates for an individual plot are run through fitter, and a line plot is made instead of showing data points. Alternatively you can specify fitter='ecdf' to compute and plot emirical cumulative distribution functions.

Examples

Run this code
if (FALSE) {
set.seed(1)
pts     <- expand.grid(v=c('y1', 'y2', 'y3'), x=1:4, g=c('a', 'b'), yhi=NA,
                       tracename='mean', legendgroup='mean',
                       connect=TRUE, size=4)

pts$y   <- round(runif(nrow(pts)), 2)

segs     <- expand.grid(v=c('y1', 'y2', 'y3'), x=1:4, g=c('a', 'b'),
                        tracename='limits', legendgroup='limits',
                        connect=NA, size=6)
segs$y   <- runif(nrow(pts))
segs$yhi <- segs$y + runif(nrow(pts), .05, .15)

z <- rbind(pts, segs)

xlab <- labelPlotmath('X12', 'm/sec2', html=TRUE)
ylab <- c(y1=labelPlotmath('Y1', 'cm', html=TRUE),
          y2='Y2',
          y3=labelPlotmath('Y3', 'mm', html=TRUE))

W=plotlyM(z, multplot=~v, color=~g, xlab=xlab, ylab=ylab, ncols=2,
          colors=c('black', 'blue'))

W2=plotlyM(z, multplot=~v, color=~I('black'), xlab=xlab, ylab=ylab,
           colors=c('black', 'blue'))

}

Run the code above in your browser using DataLab