imagep(x, y, z,
xlim, ylim, zlim,
zclip=FALSE,
flipy=FALSE,
xlab="", ylab="", zlab="", zlabPosition=c("top", "side"),
breaks, col,
labels=NULL, at=NULL,
drawContours=FALSE,
drawPalette=TRUE,
drawTriangles=FALSE,
tformat,
drawTimeRange=getOption("oceDrawTimeRange"),
filledContour=FALSE,
missingColor=NULL,
mgp=getOption("oceMgp"),
mar, mai.palette,
xaxs="i", yaxs="i",
cex=par("cex"),
adorn,
axes=TRUE,
main="",
debug=getOption("oceDebug"),
...)z
are measured. The values must be finite and distinct. If they are out
of order, they will be ordered (and the z data will be ordered in
a matchinimage, which explains tzlim, if the latter is provided. Clipped
regions will be coloured with missingColor.TRUE indicating that the image
should be flipped top to bottom (e.g. to produce a profile image
for a downward-looking acoustic-doppler profile).pretty, in determining clean break points.oceColorsJet for a rainbow.at)labelsoce.plot.ts, for
plot types that call that function. (See strptime for the
format used.)x axis is a
time. If TRUE, then an indication of the time range of the
data (not the axis) is indicated at the top-left margin of the
graph. This is useful because the labels ondrawPalette=TRUE, a palette is drawn at the right-hand side of the
main image. If drawPalette=FALSE, no palette is drawn, and the
right-hand side of drawPalette.NULL to avoid making the indication.par(mgp), and
also for par(mar), computed from this. The default is
tighter than the R default, in order to use more space for the
data and less for the axes.par("mar"). If not given, a
reasonable value is calculated based on whether xlab and
ylab are empty strings.zlab is an empty
string, and the value of zlabPosition."i") or not; see
par("xaxs").xaxs but for y axis.par("cex").expression to be performed immediately after
drawing the data panel.TRUE to get axes on the main image.filled.contour except that with imagep it
is possible to set the layout outside the function, which
enables the creation of plots with many image-palette panels. Note that
the contour lines may not coincide with the colour transitions, in the case
of coarse images. Note that this does not use layout or any of the other screen
splitting methods. It simply manipulates margins, and draws two plots
together. This lets users employ their favourite layout schemes.
The palette is drawn before the image, so that further drawing can be done on
the image if desired, if the user prefers not to use the adorn
argument.
NOTE: imagep is an analogue of image, and so it borrows
a somewhat odd convention: the number of rows in the matrix corresponds to
the x axis, not the y axis. (Actually, image
permits the length of x to match either nrow(z) or
1+nrow(z), but here only the first is permitted.)
drawPalette.library(oce)
## simplest use
imagep(volcano)
## something oceanographic (internal-wave speed)
h <- seq(0, 50, length.out=100)
drho <- seq(1, 3, length.out=200)
speed <- outer(h, drho, function(drho, h) sqrt(9.8 * drho * h / 1024))
imagep(h, drho, speed, xlab="Equivalent depth [m]",
ylab=expression(paste(Delta*rho, "[kg/m^3]")),
zlab="Internal-wave speed [m/s]")
## fancy labelling on atan() function
x <- seq(0, 1, 0.01)
y <- seq(0, 1, 0.01)
angle <- outer(x,y,function(x,y) atan2(y,x))
imagep(x, y, angle, filledContour=TRUE, breaks=c(0, pi/4, pi/2),
col=c("lightgray", "darkgray"),
at=c(0, pi/4, pi/2),
labels=c(0, expression(pi/4), expression(pi/2)))Run the code above in your browser using DataLab