カラーバー(COLORBAR)上で表示する色の数を制限することはできますか?
9 ビュー (過去 30 日間)
古いコメントを表示
COLORBAR コマンドを実行すると、カラーバー上は 64色で表示されます。
例えば、CONTOUR 関数や CONTOURF 関数で、コンター図でレベルを指定して表示しているとき、そのレベルと同じ色数でカラーバーを表現する方法を教えてください。
採用された回答
MathWorks Support Team
2017 年 5 月 4 日
MATLAB では直接的にカラーバーの色を指定することはできません。
代替案としては、カラーバーを表示している Axes オブジェクト上にある Image オブジェクトの 'CData' プロパティを変更する方法があります。
以下に例を示します。
mx = peaks(100);% デモ用データの作成
numberOfColors = 5; % 色の数を選択
nc = numberOfColors-1; % カラーバーで使用する色の数
[c,h, cf] =contourf(mx,nc); % コンター表示
cb = colorbar; % カラーバー表示とハンドルの取得
i = findobj(cb,'type','image'); % カラーバー上の Image オブジェクト取得
minVal = min(mx(:)); % カラーバー軸を適切に設定するため、データの上限下限を取得
maxVal = max(mx(:));
% 全ての色について範囲内におさまるように、カラーバーの CData を設定
set(i,'cdata',[0:64/nc:64]','YData',[minVal maxVal]);
% カラーバーの目盛り刻みを指定
set(cb,'yLim',[minVal maxVal],'ytick',[minVal:(maxVal-minVal)/(nc):maxVal]');
% オプション2: カラーバーの目盛り刻みを指定
%set(cb,'yLim',[minVal maxVal],'ytick',[minVal:(maxVal-minVal)/(2*nc):maxVal]');
0 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!