How do I create a logarithmic scale colormap or colorbar?
504 次查看(过去 30 天)
显示 更早的评论
MathWorks Support Team
2012-7-6
编辑: MathWorks Support Team
2025-4-4
I need to color 'surf' plots on a log scale and subsequently displace the log-based colorbar.
采纳的回答
MathWorks Support Team
2025-4-3
编辑:MathWorks Support Team
2025-4-4
Please follow the steps below to create a log colorbar in a 'surf' plot:
% Plot the surface plot
[X, Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
figure;
surf(X, Y, Z)
% Show the colorbar
colorbar
% Set the log colobar
set(gca,'ColorScale','log')
Note: This feature was introduced in MATLAB R2018a.
For more information, refer to the "Color and Transparency Maps" section of the Axes Properties documentation:
6 个评论
Walter Roberson
2025-3-21
@MathWorks Support Team does not (usually) read these posts.
Guy
2025-4-4
Thank you for pointing out this behavior of "colorbar" limits. A request has been made to the MathWorks development team to document specifically how the limits of a "colorbar" are determined.
更多回答(2 个)
lvn
2023-11-9
编辑:Rena Berman
2023-11-22
set(gca,'ColorScale','log')
4 个评论
Walter Roberson
2020-3-31
You can tell by the wording of the official answer that it was written for an older version of MATLAB.
Pat Williamson
2023-5-11
编辑:Walter Roberson
2023-9-5
Hi Kristoffer Walker,
If you still need assistance with this issue, please create a MathWorks Technical Support Case. We would be happy to help you out.
Berthold Reisz
2019-3-15
Try the following:
% let A be your data
A = 100*rand(100,100);
% plot log10 of A
pcolor(log10(A))
% get the minimum and maximum value of A
c1 = min(min(A));
c2 = max(max(A));
% set limits for the caxis
caxis([log10(c1) log10(c2)]);
% preallocate Ticks and TickLabels
num_of_ticks = 5;
Ticks = zeros(1,num_of_ticks);
TickLabels = zeros(1,num_of_ticks);
% distribute Ticks and TickLabels
for n = 1:1:num_of_ticks
Ticks(n) = log10(round(c2)/num_of_ticks*n);
TickLabels(n) = round(c2)/num_of_ticks*n;
end
% set Ticks and TickLabels
colorbar('Ticks',Ticks,'TickLabels',TickLabels)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Distribution Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!