A proposed colormap() function for oce is illustrated.

Introduction

Over the past month or so I have been trying different ways of handling GMT-style colormaps in Oce. I think my present solution is on the right track, but I am posting here to get more eyes on the problem.

Note that, prior to 2014-04, there were different versions for colormap().

Procedure

The following code is direct from the help for Colormap(); all I’ve done is to put the example code into Rmarkdown to make for easier comparison with the resultant graphs.

1

library(oce)

1 2 3 4 5 6 7 8 9 10

## 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()

## 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)

1 2 3 4 5 6 7

## 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)

1 2 3 4 5 6 7 8 9

## 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"), n=c(100,8,1))