Non-uniform contourf/imagesc/co​lorbar

版本 (129.9 KB) 作者: Yuxin Jiang
This function allows non-uniform contour levels contourf/imagesc/pcolor.
704.0 次下载
更新时间 2018/9/11


编者注: 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
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')


Yuxin Jiang (2024). Non-uniform contourf/imagesc/colorbar (, MATLAB Central File Exchange. 检索来源 .

MATLAB 版本兼容性
创建方式 R2017a
Windows macOS Linux
Help CenterMATLAB Answers 中查找有关 Contour Plots 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!


版本 已发布 发行说明

Add support for pcolor

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.

handle Inf(s)

handle NaNs

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

update description