如何在 matlab 中设置阶跃颜色条?

How to setup step colorbar in matlab?

我想更改Matlab默认生成的颜色条(jet color),尤其是颜色的step(如下图)。怎么做?

这是我的代码

[hC hC] = contourf(interp2(sal,2,'spline'),[0:0.5:5]);
set(hC,'LineStyle','none','YTick',0:4);
colorbar;

您可以使用以下方法调整颜色栏属性:

c=colorbar;
c.Ticks=[vector of tick locations]

或者您也可以试试

c.Limits=[min max]

请参阅 MATLAB 文档了解颜色栏属性:http://www.mathworks.com/help/matlab/ref/colorbar-properties.html?refresh=true

这更详细地解释了彩条自定义

如果您希望减少等高线图和颜色条中的颜色数量,则可以使用减少的颜色集设置新的颜色图。

%Get 10 colors from jet
numColors = 10;
colormap(jet(numColors))  
data = peaks;
contourf(data)
% Optionally you can set yTicks in conjunction with the number of items in your colormap to line up
colorbar('YTick',linspace(min(data(:)),max(data(:)),numColors+1))

编辑: 如果您想更好地控制等高线的绘制位置,请使用此形式的函数 countourf(data,v),其中 v 是所需等高线级别的单调递增向量。示例:

contourf(data,linspace(-7,8,numColors))
c = colorbar('YTick',linspace(-7,8,numColors+1));

将在 -7、-5.33、-3.66 ... 8 处绘制 10 条等高线。将 -7 和 8 替换为您想要的任何内容。 min/max 数据或任何对您的应用程序有意义的数据