MATLAB Answers

why 'colormap' did not change the color of my plots?

12 views (last 30 days)
prasanth s
prasanth s on 11 Oct 2019
Edited: Adam Danz on 11 Oct 2019
example:
figure, plot(rand(5))
colormap hot
above code did not change the color of plot.

  0 Comments

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 11 Oct 2019
Edited: Adam Danz on 11 Oct 2019
If you want to change the color of the lines based on a colormap, you can apply those colors to the "ColorOrder" property of the axes.
figure
h = plot(rand(5));
% Create a colormap based on the number of lines in your plot
cmap = hot(numel(h)); %you can use any colormap here
% Apply the colors to the lines
set(gca, 'ColorOrder', cmap)
Alternatively, you can apply the colors to the color handles of line objects,
set(h,{'Color'}, mat2cell(cmap,ones(numel(h),1),3))
Note that if your really want to use "hot", you'll end up with yellow and white lines wich are difficult or impossible to see against the default white axis. In that case you can change the axis colors to some other dark color.
set(gca, 'Color', [.2 .2 .2])

  0 Comments

Sign in to comment.

More Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 11 Oct 2019
Hi,
in order to get the colormap effect, the plot has to be 3D (like mesh, surf, etc), e.g.:
H=figure,
[x, y] = meshgrid(linspace(0, 13), linspace(-pi, pi));
Z = exp(cos(x)+sin(y));
mesh(x,y,Z);
colormap(H, hot)
%% An alternative colormap
H=figure,
[x, y] = meshgrid(linspace(0, 13), linspace(-pi, pi));
Z = exp(cos(x)+sin(y));
mesh(x,y,Z);
colormap(H, jet)
Good luck

Translated by