【问题标题】:MATLAB colorbar end tick issueMATLAB颜色条结束刻度问题
【发布时间】:2018-01-15 22:12:39
【问题描述】:

在 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]);

这是一个错误还是一个“功能”? 我该如何解决?

【问题讨论】:

  • 请提供可以重现您遇到的问题的代码(请参阅minimal reproducible example)。在您的情况下,您应该包含S 的一部分(或全部),这仍然会导致问题。另请提及您正在使用的 MATLAB 版本。最后,您可以通过将CLim 设置为CLim +[-1,1].*eps(CLim) 来解决它。
  • 已修复。基本上,几乎所有S 组合都会出现这个问题。

标签: matlab colorbar contourf


【解决方案1】:

自己找到了解决方案:

基本上它与contourf(S,30) 的工作方式有关。如果我们用contourf(S,30,'ShowText','on') 绘制线的值,最高值将低于maxS。所以最后一个刻度超出了等高线图的可能值范围。

我想出的最佳解决方案是使用contourf(S,linspace(1,maxS,30))。现在结束刻度是可见的。

【讨论】:

    猜你喜欢
    • 2020-12-01
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    相关资源
    最近更新 更多