Non-uniform contourf/imagesc/co​lorbar

This function allows non-uniform contour levels contourf/imagesc/pcolor.

You are now following this Submission

Editor's Note: This file was selected as MATLAB Central Pick of the Week

The colormap in Matlab supports only linear mapping, which is inconvenient when plotting data spaning multiple orders, e.g., peaks(100).^4. This function uses the trick of piecewise-linearly mapping to allow non-uniform contour levels contourf/imagesc/pcolor.

--- Usage ---
varargout = contourfnu(x,y,data,v,cmap,pos_colorbar,overticklabel,method,ninterp,nancolor)

--- Input Variables ---
x : x-coordinates of grid, vector or 2d matrix
y : y-coordinates of grid, vector or 2d matrix
If x and y are vectors, then length(x)==size(z,2) and length(y)==size(Z,1).
If x and y are 2d matrix, they are generated by meshgrid
data : 2d matrix to be ploted
(Optional:)
v : vector of contour levels (default:linspace(datamin,datamax,10))
cmap : color map array (default:jet)
pos_colorbar : 'none', or location with respect to the axes (default:'eastoutside')
overticklabel : whether or not label the overrange ticks at colorbar (default:true)
method : imagesc, contourf, contour or pcolor (default:imagesc)
ninterp : repeatedly interp times in each dimension (default:0)
nancolor : axis backgroud color

--- Output Variable ---
hout : structure with handles
.h plot handle
.c contour matrix (method='contourf')
.hc colorbar handle (pos_colorbar~='none')

Cite As

Yuxin Jiang (2026). Non-uniform contourf/imagesc/colorbar (https://www.mathworks.com/matlabcentral/fileexchange/65424-non-uniform-contourf-imagesc-colorbar), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.5.0.0

Add support for pcolor

1.4.0.0

Update demo and description.
Fix a bug when pos_colorbar='southourside', 'northourside', 'south' or 'north'.
Add support for inf in v. This is useful for common colorbar plots.

1.3.0.0

handle Inf(s)

1.2.0.0

handle NaNs

1.1.0.0

add a parameter to control the max/min ticklabel(s)
update demo
update comments

1.0.0.0

update description