在MATLAB2017a中,当我使用contourf然后手动指定颜色条刻度时,不显示结束刻度。 结束标记对应于轮廓矩阵中的最大值。 做一些类似的事情:
S = floor(rand(20)*20)+1;
maxS = max(max(S)); %S is an integer matrix obtained from the previous code
tickStep = maxS/10;
contourf(S, 30)
bar = colorbar('XTick', [1,tickStep:tickStep:maxS]);
这是一个错误还是一个“功能”? 我该如何解决它?
答案 0 :(得分:1)
自己找到解决方案:
基本上它与contourf(S,30)
的工作方式有关。如果我们使用contourf(S,30,'ShowText','on')
绘制线条的值,则最高值将低于maxS
。因此,最后一个刻度超出了等值线图的可能值范围。
我提出的最佳解决方案是使用contourf(S,linspace(1,maxS,30))
。现在可以看到结束标记。