2017-08-08 81 views
1

在MATLAB2017a中,當我使用contourf,然後手動指定顏色條刻度時,不顯示結束刻度。 結束刻度對應於輪廓矩陣中的最大值。 做類似變薄:MATLAB colorbar end tick issue

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

是一個bug或者是一個「功能」? 我如何解決它?

+1

請提供可重現您看到的問題的代碼(請參閱[mcve])。在你的情況下,你應該包含一些仍然導致問題的部分(或全部)「S」。請再提一下你正在使用的MATLAB版本。最後,你可以通過將'CLim'設置爲'CLim + [ - 1,1]。* eps(CLim)'來解決這個問題。 –

+0

固定。基本上這個問題應該出現在幾乎所有的「S」構成中。 – Alex

回答

1

找到了解決自己:

基本上,它是關係到方式contourf(S,30)作品。如果我們用contourf(S,30,'ShowText','on')繪製這些行的值,則最高值將低於maxS。所以最後的勾號超出了等值線圖可能值的範圍。

我想出的最佳解決方案是使用contourf(S,linspace(1,maxS,30))。現在可以看到結束刻度。