Barplots for Several Binary Variables

Share:

Description

Display one or more binary variables by using black bars for presence/validity of a condition, empty space for absence/invalidity, and an extra color for missing values. Additionally, an index plot for one interval scaled variable can be added, possibly with a smoothing function (OLD version, to be deprecated).

This routine is primarily intended for augmenting heatmaps. It might be useful in other contexts, but misses most frills for using it comfortably.

Usage

1
2
oldPicketplot(x, covariate = NULL, grp = NULL, grpcol, grplabel = NULL, 
           add = FALSE, control = list())

Arguments

x

a matrix or data frame containing the data.

covariate

the index of the column in x that contains the interval scaled variable, if any.

grp

cluster indices for the rows of x, used for assigning background color.

grpcol

colors corresponding to the clusters.

grplabel

cluster names.

add

logical indicating whether to start a new plot, or whether to add the plot to the existing one.

control

a list of parameters controlling the appearance of the plot, see Details.

Details

The following named list elements can be set to change the appearance of the plot:

boxw

the relative width of a marking box.

boxh

the relative height of a marking box.

hbuff

the horizontal separation around marking boxes; equals half the horizontal distance between two marking boxes.

vbuff

ditto for vertical separation.

span

passed on to loess used for the smoothing curve.

nacol

color for missing values of binary variables.

degree

if 0, no smoothing line is drawn; otherwise passed on to loess used for the smoothing curve.

cex.label

the character size for grplabel.

Note

The plot looks like a more or less derelict picket fence, and 'picketplot' sounds somewhat like the 'pocketplot' used in geostatistics.

Author(s)

Alexander Ploner <Alexander.Ploner@ki.se>

See Also

heatmap_plus

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# without covariate
mm = cbind(sample(0:1, 42, rep=TRUE), sample(0:1, 42, rep=TRUE))
mm[sample(42, 5), 1] = NA
oldPicketplot(mm)

# with clustering
cl = rep(1:3, c(10,22,10))
cn = c("Cluster I","Cluster II","Cluster III")
cc = c("lightblue","lightgreen","lightpink") # windows palette
oldPicketplot(mm, grp=cl, grplabel=cn, grpcol=cc)

# add a covariate; setting the colnames makes the variable labels
mm = cbind(mm, rnorm(42) + cl/2)
colnames(mm) = c("State A","State B", "X")
oldPicketplot(mm, covariate=3,grp=cl, grplabel=cn, grpcol=cc)

# using extra controls
oldPicketplot(mm, covariate=3,grp=cl, grplabel=cn, grpcol=cc, control=list(nacol="white", degree=0))