imagep(x, y, z,
xlim, ylim, zlim,
zclip=FALSE, flipy=FALSE,
xlab="", ylab="", zlab="", zlabPosition=c("top", "side"),
decimate=TRUE,
breaks, col, colormap, 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="",
axisPalette,
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 t"histogram" to have a flattened histogram (i.e. to maximally
increase contrast throughout the domain.)decimate=FALSE, no decimation is done, i.e. all data are shown.
If decimate=TRUE, then the image is decimated to display at most
800 pixels in width or hzlim. This only works if zlim is
provided. Clipped regions will be colored with missingColor.
Thus, clipping an image iTRUE 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.oce.colorsJet for a rainbow.colormap. If
provided, then colormap$breaks and colormap$col take
precedence over the present arguments breaks and coat)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.mai value used for the palette. Use with care."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.axis(), passed to
drawPalette.xat and yat,
values that can be used by oce.grid to add a grid to the
plot.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 color 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)
## 1. simplest use
imagep(volcano)
## 2. 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]")
## 3. 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)))
## 4. a colormap case
data(topoWorld)
cm <- colormap(name="gmt_globe")
imagep(topoWorld, colormap=cm)Run the code above in your browser using DataLab