How can I divide the colorbar into just two ranges?
28 次查看(过去 30 天)
显示 更早的评论
How can I set the colorbar to show me only two ranges, for example one smaller than 0.05 and the other larger than 0.05?
0 个评论
回答(2 个)
Cris LaPierre
2021-6-11
编辑:Cris LaPierre
2021-6-11
The number of colors is controled by your colormap. However, MATLAB spreads the colormap evenly over the range of data plotted. If you want the transition to occur as a specific value, you will likely need to manually specify the color property of your figure.
Here's an example using surf.
p = peaks;
C = p>=0.05;
surf(p,C+1)
colormap(parula(2))
colorbar('Ticks',[1,1.5,2],'TickLabels',[-10,0.05,10])
The actual solution will depend greatly on the type of figure you are tyring to create.
0 个评论
DGM
2021-6-11
One way is to specify the colormap and caxis(); consider the example
[x y z] = sphere(30);
surf(x,y,z);
axis equal
datarange = [-1 1];
breakpoint = 0.5;
ctlen = 256;
colors = [0 0 1; 0 1 1];
pos = (max(datarange)-breakpoint)/diff(datarange);
n = [floor(ctlen*(1-pos)) ceil(ctlen*pos)];
cmap = [repmat(colors(1,:),[n(1),1]); repmat(colors(2,:),[n(2),1])];
colormap(cmap);
caxis(datarange)
colorbar
Doing it this way allows you to control the breakpoint position independently of the caxis endpoints.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 White 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!