
drawPalette(zlim, zlab="",
breaks, col, colormap,
mai, cex.axis=par("cex.axis"), pos=4,
labels=NULL, at=NULL,
levels, drawContours=FALSE,
plot=TRUE, fullpage=FALSE, drawTriangles=FALSE,
axisPalette, tformat,
debug=getOption("oceDebug"), ...)
oce.colorsJet
for a rainbow.colormap
. If
provided, this takes precedence over breaks
and col
.par
. If not given, reasonable values are inferred from
the existence of a non-blank zlab
.at
)label
sbreaks
values, to be added to the image if drawContours
is
TRUE
.mai
, of course). This
can be helpful if the palette panel is to be created with
layout
axis()
, e.g.
for exponential notation on large or small values.drawPalette
, and reset after each
palette-plot pair. This method is illustrated in drawPalette
draws an image palette near the
right-hand side of the plotting device, and then adjusts the global margin
settings in such a way as to cause the next plot to appear (with much
larger width) to the left of the palette. The function can also be used, if
zlim
is not provided, to adjust the margin without drawing anything;
this is useful in lining up the x axes of a stack of plots, some some of
which will have palettes and others not. The plot positioning is done entirely with margins, not with
par(mfrow)
or other R schemes for multi-panel plots. This means
that the user is free to use those schemes without worrying about nesting
or conflicts.
imagep
.library(oce)
par(mgp=getOption("oceMgp"))
## 1. A three-panel plot
par(mfrow=c(3,1), mar=c(3, 3, 1, 1))
omar <- par('mar') # save initial margin
## 1a. top panel: simple case
drawPalette(zlim=c(0,1), col=oce.colorsJet(10))
plot(1:10, 1:10, col=oce.colorsJet(10)[1:10],pch=20,cex=3,xlab='x', ylab='y')
par(mar=omar) # reset margin
## 1b. middle panel: colormap
cm <- colormap(name="gmt_globe")
drawPalette(colormap=cm)
icol <- seq_along(cm$col)
plot(icol, cm$breaks[icol], pch=20, cex=2, col=cm$col,
xlab="Palette index", ylab="Palette breaks")
par(mar=omar) # reset margin
## 1c. bottom panel: space for palette (to line up graphs)
drawPalette(plot=FALSE)
plot(1:10, 1:10, col=oce.colorsJet(10)[1:10],pch=20,cex=3,xlab='x', ylab='y')
par(mar=omar) # reset margin
# 2. Use layout to mimic the action of imagep(), with the width
# of the palette region being 14 percent of figure width.
d <- 0.14
layout(matrix(1:2,nrow=1), widths=c(1-d,d))
image(volcano, col=oce.colorsJet(100), zlim=c(90, 200))
contour(volcano, add=TRUE)
drawPalette(c(90, 200), fullpage=TRUE, col=oce.colorsJet)
Run the code above in your browser using DataLab