MATLAB Answers

sid Chen

How to plot a Map with 2 dimensional colorbar?

Asked by sid Chen
on 14 Oct 2019 at 4:44
Latest activity Commented on by sid Chen
on 15 Oct 2019 at 8:59
Hi, I want to plot like this figure.
My question is how to get colorbar like this one, the shape of the figure( like this map) doesn`t matter( Now it`s a gobal spatial pattern, it could be anything else)
at each point on the map, I have 2 values, mapping to one color in the two dimensional colorbar.


on 14 Oct 2019 at 10:04
You can use axes to create new axes and place there an image you want
sid Chen
on 14 Oct 2019 at 16:03
It`s my fault that my expression is not clear.
The trouble is how to get 2-D colorbar, I only know how to plot with 1-D colorbar.The position doesn`t bother me.
Thanks for comments.
on 14 Oct 2019 at 16:19
As mentioned, there is no functionality for a 2d colourbar in Matlab, but you can create your 2d image representing your 2d colourmap easily and just plot it using imagesc on its own axes that you can position wherever you want.

Sign in to comment.

2 Answers

Answer by darova
on 14 Oct 2019 at 18:53
 Accepted Answer

Here is a way:
n = 100;
I = zeros(n,n,3);
h = linspace(0,1/6,n);
s = linspace(1,0,n/2);
[H,S] = meshgrid(h,s);
I(:,:,1) = [H+0.5; H];
I(:,:,2) = [S; flipud(S)];
I(:,:,3) = [S; flipud(S)]/2+0.5;
I1 = hsv2rgb(I);

  1 Comment

Wow, Thanks!
it`s amazing!

Sign in to comment.

Answer by Alaster Meehan on 14 Oct 2019 at 5:40

I don't think Matlab has anything that can do this nativly, but I will follow just incase any has a better idea then me.
My thoughts...
Generate an image/matrix that is what you want you color bar to look like. Use the subplot function to plot your image/map and your colorbar image next to each other.
Cheers Alaster

  1 Comment

sid Chen
on 14 Oct 2019 at 15:59
Still Thanks!
I will be wating for the answer.

Sign in to comment.