Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Introduction
In Oceanography it can be useful to use colour to display z values along an (x,y) trajectory. For example, CTD data might be displayed in this way, with x being distance along track, y being depth, and z being temperature. This post shows how one might do this.
Methods
The R code given below demonstrates this with fake data. The core idea is to use segments()
, here with head()
and tail()
to chop up the trajectory.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | library(oce) x <- 1:50 y <- x * 2/10 + x^2/10 z <- seq(0, 5, length.out = length(x)) zlim <- range(z) npalette <- 10 palette <- oceColorsJet(npalette) drawPalette(zlim = zlim, col = palette) plot(x, y, type = "l") segments(head(x, -1), head(y, -1), tail(x, -1), tail(y, -1), col = palette[findInterval(z, seq(zlim[1], zlim[2], length.out = npalette))], lwd = 10) points(x, y, pch = 20) |
Results
The graph shows that this works reasonably well. The dots will probably not be useful in an actual application, and are used here just to indicate colourization in groups.
The method works well, and is flexible in terms of colour schemes.
Exercises
Find a way to blend colour between the points, perhaps by defining a euclidian distance in (x,y) space (which will of course require scaling if x and y have different units or ranges) and then using approx()
.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.