Learn R Programming

oce (version 0.9-3)

imagep: Plot an image with a colour palette

Description

Plot an image with a colour palette

Usage

imagep(x, y, z, 
      xlim, ylim, zlim, 
      flipy=FALSE,
      xlab="", ylab="", zlab="",
      breaks, col,
      labels=NULL, at=NULL,
      drawContours=FALSE,
      drawTimeRange=getOption("oceDrawTimeRange"),
      drawPalette=TRUE,
      filledContour=FALSE,
      missingColor=NULL,
      mgp=getOption("oceMgp"),
      mar=c(mgp[1]+if(nchar(xlab)>0) 1.5 else 1,
            mgp[1]+if(nchar(ylab)>0) 1.5 else 1,
            mgp[2]+1/2, 
            1/2),
      mai.palette=c(0, 1/8, 0, 3/8),
      xaxs="i", yaxs="i",
      cex=par("cex"),
      adorn,
      axes=TRUE,
      main="",
      debug=getOption("oceDebug"),
      ...)

Arguments

x,y
optional locations of grid lines along which values of 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 matching way)
z
a matrix containing the values to be plotted (NAs are allowed). Note that x can be used instead of z for convenience. (NOTE: these arguments are meant to mimic those of image, which explains the s
xlim,ylim,zlim
limits on x axis, y axis, and the image values.
flipy
boolean, with 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).
xlab,ylab,zlab
names for x axis, y axis, and the image values.
breaks
the z values for breaks in the colour scheme. If this is of length 1, the value indicates the desired number of breaks, which is supplied to pretty, in determining clean break points.
col
either a vector of colours corresponding to the breaks, of length 1 plus the number of breaks, or a function specifying colours, e.g. oceColorsJet for a rainbow.
labels
optional vector of labels for ticks on palette axis (must correspond with at)
at
optional vector of positions for the labels
drawContours
boolean, TRUE to get contours on the image, and palette, at the colour breaks. Images with a great deal of high-wavenumber variation look poor with contours.
drawTimeRange
boolean, only used if the 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 on time axes o
drawPalette
indication of the type of palette to draw, if any. If drawPalette=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 the pl
filledContour
boolean value indicating whether to use filled contours to plot the image.
missingColor
a color to be used to indicate missing data, or NULL to avoid making the indication.
mgp
3-element numerical vector to use for 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.
mar
value to be used with par("mar").
mai.palette
margins, in inches, for the palette
xaxs
character indicating whether image should extend to edge of x axis (with value "i") or not; see par("xaxs").
yaxs
as xaxs but for y axis.
cex
size of labels on axes and palette; see par("cex").
adorn
optional expression to be performed immediately after drawing the data panel.
axes
logical, set TRUE to get axes on the main image.
main
title for plot.
debug
a flag that turns on debugging. Set to 1 to get a moderate amount of debugging information, or to 2 to get more.
...
optional arguments passed to plotting functions.

Value

  • None.

Details

Creates an image with a colour palette to the right. The effect is similar to 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.)

See Also

This is used by plot.adp.

Examples

Run this code
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