# plotlyM

##### plotly Multiple

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)
```

##### 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`

- 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.- 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

##### 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.

##### Value

`plotly`

object produced by `subplot`

##### Examples

```
# NOT RUN {
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('X<sub>12</sub>', 'm/sec<sup>2</sup>', 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'))
# }
```

*Documentation reproduced from package Hmisc, version 4.3-1, License: GPL (>= 2)*