longCatPlot: Plotting of 'longCat' Objects

View source: R/longCatPlot.R

longCatPlotR Documentation

Plotting of longCat Objects

Description

Function to plot longCat objects created by longCat.

Usage

longCatPlot(
  lc,
  xlab = "Days",
  ylab = NULL,
  cols = NULL,
  colScheme = "heat",
  reverse = FALSE,
  lwd = 0.5,
  lcex = 1,
  llwd = 3,
  legendBuffer = 0.12,
  groupBuffer = 0,
  groupRotation = 90,
  gcex = 1,
  seg.len = 1,
  xlas = 0,
  xcex = 1,
  ecex = 0.5,
  event.col = 1,
  plot.events = TRUE,
  which.events = NULL,
  n.events = NULL,
  event.pch = NULL,
  texclude = NULL,
  sort = TRUE,
  which.state = NULL,
  nth.state = NULL,
  not.state = FALSE,
  which.event = NULL,
  nth.event = NULL,
  not.event = FALSE,
  ...
)

Arguments

lc

An object of class longCat created by longCat.

xlab

A label for the x-axis. Default is "Days".

ylab

A label for the y-axis. Default is NULL which is changed to "Each Line Represents a Participant" with the sample size appended (lc$dim[1]).

cols

A numeric or character list of colors. To use internal color schemes, use colScheme.

colScheme

Select a color scheme. See colChoose for available options.

reverse

Color schemes are applied from the lowest to highest level of categorical data in lc$y or lc$y.sorted. Set reverse=TRUE to reverse this. Default is FALSE.

lwd

Set the width of horizontal lines. Default is .5.

lcex

Character expansion factor for the legend text. Default is 1.

llwd

Set the width of lines in the legend. Default is 3.

legendBuffer

Set proportion of the plot to retain for legends, must be in [0,1]. Default is .12.

groupBuffer

Similar to legendBuffer, but for group labels on the left side of the plot. Default is 0.

groupRotation

Rotation of the labels to reduce the needed size of groupBuffer. Default is 90 degrees.

gcex

Character expansion factor for group labels. Default is 1.

seg.len

Length of lines in the upper legend. Default is 1.

xlas

Applied to the x-axis when tLabels are provided. See las in par.

xcex

Applied to the x-axis when tLabels are provided. Default is 1.

ecex

Used to size the points used to plot event points if events is not NULL. Default is .5.

event.col

Color for plotting event indicators.

plot.events

Logical - should events be plotted? Default is TRUE.

which.events

Numeric vector - which events should be plotted.

n.events

How many events should be plotted, e.g., n.events=3 plots the first three events for each participant.

event.pch

What plotting characters should be used. See points.

texclude

A vector indicating the range of times and event.times to be plotted.

sort

Logical - should longCatPlot sort the data on the fly using intelligent defaults? Default is TRUE.

which.state

See alignTime.

nth.state

See alignTime.

not.state

See alignTime.

which.event

See alignTime.

nth.event

See alignTime.

not.event

See alignTime.

...

Arguments to be passed to plot.

See Also

longCat, for creating the object to be plotted.

Examples

# Illustrate longCatPlot with the legend outside the plot
par(mfrow=c(1,1), bg='cornsilk3', mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE)
cols <- longCatPlot(
  longCat(example3),
  legendBuffer=0,
  main='Horizontal Line Plot')
legend(7.1, 100, legend=1:5, col=cols, lty=1, lwd=2)
par(bg='transparent', mar = c(5, 4, 4, 2) + 0.1, xpd=FALSE)

### visualizing multivariate data: 3 items at 4 time points
library(MASS)
Sigma <- matrix(.25, 12, 12)
diag(Sigma) <- 1
set.seed(9845)
mu <- rep(c(-.5, 0, .5), 4) + rnorm(12, 0, .25)
set.seed(539)
ymv <- apply(mvrnorm(n=100, mu=mu, Sigma = Sigma), 2, cut, breaks=c(-Inf, 0, Inf), labels=c(0,1))
apply(ymv, 2, table)
(items <- rep(1:3, 4))
(times <- sort(rep(1:4, 3)))
tLabels <- paste('Time', 1:4)
Labels <- paste('Item', 1:3)

# plot time points within items
par(mfrow=c(2,2), bg='cornsilk3', mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE)

item1  <- longCat(y=ymv[,items==1], tLabels=tLabels)
cols <- longCatPlot(item1, ylab='', main='Item 1', legendBuffer=0, xlab="", xlas=2)
legend(length(unique(times))+.1, nrow(ymv), legend=0:1, col=cols, lty=1, lwd=2, title='Response')

item2 <- longCat(y=ymv[,items==2], tLabels=tLabels)
longCatPlot(item2, ylab='', main='Item 2', legendBuffer=0, xlab="", xlas=2)
legend(length(unique(times))+.1, nrow(ymv), legend=0:1, col=cols, lty=1, lwd=2, title='Response')

item3 <- longCat(y=ymv[,items==3], tLabels=tLabels)
longCatPlot(item3, ylab='', main='Item 3', legendBuffer=0, xlab="", xlas=2)
legend(length(unique(times))+.1, nrow(ymv), legend=0:1, col=cols, lty=1, lwd=2, title='Response')

par(bg='transparent', mar = c(5, 4, 4, 2) + 0.1, xpd=FALSE)

# plot items within time points
par(mfrow=c(2,2), bg='cornsilk3', mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE)

time1  <- longCat(y=ymv[,times==1], tLabels=Labels)
cols <- longCatPlot(time1, ylab='', main='Time 1', legendBuffer=0, xlab="")
legend(length(unique(times))+.1, nrow(ymv), legend=0:1, col=cols, lty=1, lwd=2, title='Response')

time2  <- longCat(y=ymv[,times==2], tLabels=Labels)
cols <- longCatPlot(time2, ylab='', main='Time 2', legendBuffer=0, xlab="")
legend(length(unique(times))+.1, nrow(ymv), legend=0:1, col=cols, lty=1, lwd=2, title='Response')

time3  <- longCat(y=ymv[,times==3], tLabels=Labels)
cols <- longCatPlot(time3, ylab='', main='Time 3', legendBuffer=0, xlab="")
legend(length(unique(times))+.1, nrow(ymv), legend=0:1, col=cols, lty=1, lwd=2, title='Response')

time4  <- longCat(y=ymv[,times==4], tLabels=Labels)
cols <- longCatPlot(time4, ylab='', main='Time 4', legendBuffer=0, xlab="")
legend(length(unique(times))+.1, nrow(ymv), legend=0:1, col=cols, lty=1, lwd=2, title='Response')

par(mfrow=c(1,1), bg='transparent', mar = c(5, 4, 4, 2) + 0.1, xpd=FALSE)

## Not run: 
  # for data sets with many rows, writing directly to a file
  # is much faster and unaffected by device resizing, see ?pdf
  pdf('C:/mydir/mysubdir/myfile.pdf')
  par(bg='cornsilk3')
  longCatPlot(f3lc, main='Sorted', colScheme='heat', lwd=2)
  par(mfrow=c(1,1), bg='transparent')
  dev.off()
  # see ?jpeg for picture file options

## End(Not run)

stueller/longCatEDA documentation built on March 9, 2024, 4:08 a.m.