Clear distinction between positive and negative in colorbar
43 次查看(过去 30 天)
显示 更早的评论
Here I am not able to distinguish between positivie and negative (everything is in green from -1 to +1). Can you please help me giving a different color to some set of values and different colors to another set of values. Screenshot is attached below.
I want all negative values to be bluish and darker.
回答(1 个)
Rik
2024-2-12
I would suggest using the top half of viridis and the bottom half of plasma (or the reverse). You can get both of them here.
The benefit is that both colormaps are perceptually uniform, should avoid problems for different types of colorblindness and even allow printing in black&white (or actually grayscale).
Using these two colormaps has the advantage that there is a clear color change in the middle between the two. You could insert a white in the middle, but you shouldn't, since that will cause confusion with the top of the colorbar.
viridis_top = viridis;
viridis_top = viridis_top(1:end/2,:);
plasma_bottom = plasma;
plasma_bottom = plasma_bottom(end/2:end,:);
cmap = [viridis_top;plasma_bottom];
colormap(cmap);
M = peaks(1000);
h = pcolor(M);h.EdgeColor = 'none';
extreme = max(abs(min(M(:))),max(M(:)));
caxis(extreme*[-1,1]) % align colour axis properly
colorbar
4 个评论
Rik
2024-2-23
What exactly do you mean with 'more color options'? And what did you try? You can see in my code how to define a custom colormap and how to set the caxis. What other parts are unclear to you?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Orange 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!