colormap(z,
zlim, zclip=FALSE,
breaks, col=oceColorsJet,
name, x0, x1, col0, col1, blend=0,
missingColor,
debug=getOption("oceDebug"))
z
is given, the return value will contain an item named
zcol
that will be a vector of the same length as z
,
containing a color z
limits for the colorscale. If not given, this will be determined from
the other arguments, as follows. If name
is given, then the
zlim
, if the latter is provided. Clipped regions
will be colored with missingColor
.image
). If this is provided, the arguments
name
through blend
are all ignored (see col
is ignored if name
is provided, or if x0
through
col
"gmt_relief"
, "gmt_ocean"
, "gmt_globe"
or
"gmt_gebco"
) or the name of a file or URL that contains a color
map specification in GMT x0
and x1
being numerical values, and
col0
and col1
being colors. The colors may be strings
(e.g. "red"<
x0
through col1
are supplied. A
value of 0 means to use col0[i]
through the interval x0[i]
to "gray"
, unless name
is given, in which case it
comes from that color table.breaks
and col
vectors that are suitable for
use by drawPalette
, imagep
or
image
.
There are three ways of specifying color schemes, and colormap
works
by checking for each condition in turn.
z
but nothing else. In this case,breaks
will be set topretty(z, 10)
and things are
otherwise as in case 2.breaks
. In this case,breaks
andcol
are used together to specify a color scheme. Ifcol
is a function, then it is expected to take a single
numerical argument that specifies the number of colors, and this number
will be set tolength(breaks)-1
. Otherwise,col
may be a
vector of colors, and its length must be one less than the number of
breaks. (NB. ifbreaks
is given, then all other arguments
exceptcol
andmissingColor
are ignored.)breaks
,col
) method of
specifying a color mapping. Note that there must be one more break
than color. This is the method used by e.g.image
.breaks
, but supply name
instead. This name
may be the name of a pre-defined color
palette ("gmt_relief"
, "gmt_ocean"
, "gmt_globe"
or
"gmt_gebco"
), or it may be the name of a file (including a URL)
containing a color map in the GMT format (see name
is given, then all other arguments except
z
and missingColor
are ignored.)
breaks
or name
,
but instead supply each of x0
, x1
, col0
, and
col1
. These values are specify a value-color mapping that is
similar to that used for GMT color maps. The method works by using
seq
to interpolate between the elements of the x0
vector. The same is done for x1
. Similarly,
colorRampPalette
is used to interpolate between the
colors in the col0
vector, and the same is done for col1
.
x0
, x1
,
col0
, col1
) method of specifying a color mapping.
Note that the each of the items has the same length. The case of
blend=0
, which has color col0[i]
between
x0[i]
and x1[i]
, is illustrated below.
zcol
, a vector of colors forz
, ifz
was
provided, otherwise"black"
zlim
, a two-element vector
suitable as the argument of the same name supplied toimage
orimagep
breaks
andcol
, vectors of breakpoints and colors,
suitable as the same-named arguments toimage
orimagep
x0
andx1
, numerical vectors of the sides of color
intervals, andcol0
andcol1
, vectors of corresponding
colors. The meaning is the same as on input. The purpose of returning
these four vectors is to permit users to alter color mapping, as in
example 3 inmissingColor
, a color that could be used to specify
missing values, e.g. as the same-named argument toimagep
. If this is supplied as an argument, its value is
repeated in the return value. Otherwise, its value is either"gray"
or, in the case ofname
being given, the value in
the GMT color map specification.## Example 1. color scheme for points on xy plot x <- seq(0, 1, length.out=40) y <- sin(2 * pi * x) par(mar=c(3, 3, 1, 1)) mar <- par('mar') # prevent margin creep by drawPalette() ## First, default breaks c <- colormap(y) drawPalette(c$zlim, col=c$col, breaks=c$breaks) plot(x, y, bg=c$zcol, pch=21, cex=1) grid() par(mar=mar) ## Second, 100 breaks, yielding a smoother palette c <- colormap(y, breaks=100) drawPalette(c$zlim, col=c$col, breaks=c$breaks) plot(x, y, bg=c$zcol, pch=21, cex=1) grid() par(mar=mar)
## Example 2. topographic image with a standard color scheme par(mfrow=c(1,1)) data(topoWorld) cm <- colormap(name="gmt_globe") imagep(topoWorld, breaks=cm$breaks, col=cm$col) ## visualize color map # plot(seq_along(cm$x0), cm$x0, pch=21, bg=cm$col0) # grid() # points(seq_along(cm$x1), cm$x1, pch=21, bg=cm$col1)
## Example 3. topographic image with modified colors cm <- colormap(name="gmt_globe") deep <- cm$x0 < -4000 cm$col0[deep] <- 'black' cm$col1[deep] <- 'black' cm <- colormap(x0=cm$x0, x1=cm$x1, col0=cm$col0, col1=cm$col1) imagep(topoWorld, breaks=cm$breaks, col=cm$col)
## Example 4. image of world topography with water colorized ## smoothly from violet at 8km depth to blue ## at 4km depth, then blending in 0.5km increments ## to white at the coast, with tan for land. cm <- colormap(x0=c(-8000, -4000, 0, 100), x1=c(-8000, -4000, 0, 100), col0=c("violet","blue","white","tan"), col1=c("violet","blue","white","tan"), blend=c(100, 8, 0)) lon <- topoWorld[['longitude']] lat <- topoWorld[['latitude']] z <- topoWorld[['z']] imagep(lon, lat, z, breaks=cm$breaks, col=cm$col) contour(lon, lat, z, levels=0, add=TRUE)
[object Object]