嗨,我正在尝试根据色条的刻度值对我的色图进行总分类。我用5种颜色定义了自己的颜色条,例如从蓝色到红色的5种颜色
cmap_my=[0 0 1;0 1 1;0 1 0; 1 1 0; 1 0 0];
而不是我希望我每次打勾时颜色都会改变。如果刻度线在0:40的范围内均匀分布,则使用cbfit可以根据刻度线改变颜色,但是我的刻度线是
h = colorbar;
set(h,'YTick',[5,10,15,22,30,35,40]);
而且我的范围最大为45。此外,当我使用cbfit时,我定义的颜色不再显示。是否可以给出一定的颜色范围,例如从5到10的深蓝色10到15的浅蓝色15到22的绿色22到30的浅黄色30到35的黄色35到40的橙色以及超过40的红色,然后在滴答声?
希望我能理解您的问题。这里举一个例子。您可以从这里为您选择特定的颜色。
mri=load('mri');
mri=double(mri.D(:,:,1,13));
%making my image within the same range as yours
mri=(mri-min(mri(:)))./(max(mri(:))-min(mri(:)))*45;
figure,imagesc(mri),axis off,axis image,h_bar=colorbar;
%h_map(1) is related with the min(mri), and h_map(end) with max(mri)
h_map=colormap;
min_mri=0;
max_mri=45;
lim=eps*100;
my_map_int=[0-lim,5-lim,5+lim,10-lim,10+lim,40-lim,40+lim,45+lim];
my_map_color=[0,0,0;0,0,0;0,0,1;0,0,1;0,1,0;0,1,0;1,0,0;1,0,0];
new_map_color(:,1)=interp1(my_map_int,my_map_color(:,1),linspace(min_mri,max_mri,64),'nearest');
new_map_color(:,2)=interp1(my_map_int,my_map_color(:,2),linspace(min_mri,max_mri,64),'nearest');
new_map_color(:,3)=interp1(my_map_int,my_map_color(:,3),linspace(min_mri,max_mri,64),'nearest');
figure,imagesc(mri),axis off,axis image
colormap(new_map_color)
colorbar
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句