Search code examples
rlevelplot

Locking color key in levelplot in r


I am using levelplots to display matrices and the plots are below. Though same col.regions are used for both the plots, the colour key is different. How can we lock (or set) the colour key for both level plots? I want the same colour key (0 to 60) for both plots.

enter image description here

enter image description here


Solution

  • Try setting the at and colorkey parameters.

    In my example, I use the rasterVis package, which just extends the lattice plotting functions for rasters, but it should not be necessary. I just wanted to use the BuRdTheme() function to set my own theme.

    Example:

    require(rasterVis)
    
    # My matrix
    my.mat1 <- matrix(rnorm(5*5),5,5)
    my.mat2 <- matrix(rnorm(5*5,2,2),5,5)
    
    # Custom theme (from rasterVis package)
    my.theme <- BuRdTheme()
    
    # Find the min and max values
    my.min <- min(my.mat1, my.mat2)
    my.max <- max(my.mat1, my.mat2)
    
    # Customize the colorkey
    my.at <- seq(my.min, my.max, length.out=length(my.theme$regions$col)-1)
    my.ckey <- list(at=my.at, col=my.theme$regions$col)
    
    # Level plot
    levelplot(my.mat1, par.settings=my.theme, at=my.at, colorkey=my.ckey)
    levelplot(my.mat2, par.settings=my.theme, at=my.at, colorkey=my.ckey)
    

    my.mat1 my.mat2