我尝试在Matlab中创建一个代码,该代码将生成一个表面Map,该Map具有在2或3个不同断点处定义的颜色条,例如,低于0.8时为白色,0.8-1.2时为绿色,大于1.2时为蓝色(或0.6,0.8,1 for 3断点)。我有一个代码,将运行一个定义的断点,但我有麻烦弄清楚如何运行它的多个断点。他们需要一个明确的单一颜色没有渐变过渡的颜色条。任何提示,我可以做什么来定义2-3断点颜色条在用户定义的休息?
%% Two Toned Map
% define colormap and breakpoint
cmap = [0 0 1 ; 1 1 1; 1 0 1];
breakpoint = [0.7 ; 1.2]; %CHANGE VALUE
%create a color matrix with only 2 values:
% where Profile < breakpoint => ColorData=0
% where Profile > breakpoint => ColorData=1
ColorData= zeros(size(Profile)) ;
ColorData(Profile>=breakpoint(2)) = 2 ;
ColorData(Profile<=breakpoint(1)) = 1 ;
%Plot the surface, specifying the color matrix we want to have applied
hs = surf( xa, ya, Profile, ColorData, 'EdgeColor','none' ) ;
colormap(cmap) ;
hb = colorbar ;
set (gca, 'xdir', 'reverse')
set (gca, 'ydir', 'reverse')
set (gca, 'DataAspectRatio',[1 1 1])
xlim([0 80+deltax])
ylim([0 100+deltay])
%Now adjust colorbar ticks and labels
cticks = [0.25 0.5 0.75] ; % positions of the ticks we keep
% build labels
bpstr = num2str(breakpoint) ;
cticklabels = {['<' bpstr] ; bpstr ; ['>' bpstr]}
% apply
hb.Ticks = cticks ;
hb.TickLabels = cticklabels ;
title('Sheared 4mm') %CHANGE VALUE
1条答案
按热度按时间a64a0gku1#
您需要修改标签构造代码以处理多个断点。