Jana Smith
Jana Smith

Reputation: 27

Matlab adjusting heat map axes and colors

I'm trying to create a heat map which is something I'm not very familiar with. I have a large matrix of the form:

One=
[0 2 4 6 8
 2 1 3 5 6
 4 5 8 3 1
 6 2 7 4 8
 8 3 9 5 4]

And I want to create a heat map such that the topmost row and the leftmost column are the axes. So far I've managed this:

figure(1)
Plot = One;     
colormap('hot');   
imagesc(Plot);       

I've also noticed that in the 'hot' colormap, the small numbers are very dark and the large numbers are white. Is there a way to reverse that?

Upvotes: 2

Views: 378

Answers (2)

Luis Mendo
Luis Mendo

Reputation: 112759

Generate the colormap with the hot function and flip it upside down with flipud:

colormap(flipud(hot))

By default this produces 64 colors. If you want to specify a different number, say 128, use

colormap(flipud(hot(128)))

Upvotes: 3

Nick
Nick

Reputation: 2432

Here a good start:

One = ...
[0 2 4 6 8
 2 1 3 5 6
 4 5 8 3 1
 6 2 7 4 8
 8 3 9 5 4];

figure();
imagesc(One(1,:), One(:,1), One(2:end,2:end));
get(gca(), 'ydir', 'normal')
colormap(flipud(hot()));
colorbar();

enter image description here

Notice that the x & y axis are larger than the data, so perhaps one needs to exclude One(1,1):

figure();
imagesc(One(1,2:end), One(2:end,1), One(2:end,2:end));
get(gca(), 'ydir', 'normal')
colormap(flipud(hot()));
colorbar();

enter image description here

Upvotes: 3

Related Questions