Two colormaps in the same plot

49 views (last 30 days)
Hi,
I am superimposing two images, here, I would like to use different colormap for first and second images. For e.g. jet for image 1 and hot for image 2..
I have tried this, however, at the end, both the images got the colromap defined for image 2. If somebody has gone through this kind of situtaion, please help me with this..

Accepted Answer

Steve Eddins
Steve Eddins on 10 Nov 2020
The ColorBar object has an undocumented Colormap property. You can set this property directly to control the colors displayed by the ColorBar. You can use the documented properties such as Limits so that the display corresponds to your original data values.
Just be aware that the ColorBar's behavior with the respect to the Colormap property might change in a future release.
And don't tell anyone that I told you about this. ;-)
  8 Comments
Turbulence Analysis
Turbulence Analysis on 1 Dec 2020
Great, Thanls a lot steve..
Now, I am getting two color bars

Sign in to comment.

More Answers (1)

Steve Eddins
Steve Eddins on 9 Nov 2020
You can't display images with two different colormaps within the same axes. As a workaround, you could convert both images from indexed to rgb, like this:
rgb1 = ind2rgb(X1,jet(256));
rgb2 = ind2rgb(X2,hot(256));
These two images can then be displayed or superimposed together. RGB image display is independent from the colormap.
  11 Comments
Turbulence Analysis
Turbulence Analysis on 10 Nov 2020
I have attached the superimposed images plotted from real values (Capture2) and RGB values (Capture1). As you see from the images, the colormap of capture 2 clealry depicts the reals values (0 to 4000), however, the colormap of RGB shows the intensity values from 0 to 1.
Anyways, RGB image can be dipslayed independent of colormap, hence, I can display the colormap with real values, so this problem is solved.
Since, I have displayed the images using two color patterns i.e. jet, hot (see Capture 1), here, could you please tell me how to include the two color bars ???
%%%%%%%%%%% Image display with RGB values %%%%%%%%%%%% (Capture1)
I=readimx('B00003.im7');
h = (I.Frames{1}.Components{1}.Planes {1,1})';
h1 = fix(h/10);
h1(h1==0) = 1 ;
rgb1 = ind2rgb(h1,jet(256));
ax1=gca;
G = imagesc(flipud(rgb1));
c = colorbar('FontSize',20,'TickLabelInterpreter', 'latex');
G.AlphaData = 0.5;
set(gca, 'YDir','normal')
axis equal
hold on;
I1=readimx('B00045.im7');
h2 = (I1.Frames{2,1}.Components{1,1}.Planes {1,1})';
h3 =fix(h2/10);
h3(h3==0) = 1 ;
rgb2 = ind2rgb(h3,hot(256));
ax1=gca;
GH = imagesc(flipud(rgb2));
c1 = colorbar('FontSize',20,'TickLabelInterpreter', 'latex');
GH.AlphaData = 0.5;
set(gca, 'YDir','normal')
axis equal
%%%%%%%%%%% Image display with real values %%%%%%%%%%%% (Capture2)
I=readimx('B00003.im7');
h = (I.Frames{1}.Components{1}.Planes {1,1})';
ax1=gca;
colormap(hot);
G = imagesc(flipud(h));
c = colorbar('FontSize',20,'TickLabelInterpreter', 'latex');
set(gca, 'YDir','normal')
axis equal
hold on;
I1=readimx('B00045.im7');
h2 = (I1.Frames{2,1}.Components{1,1}.Planes {1,1})';
ax1=gca;
colormap(jet);
GH = imagesc(flipud(h2));
c1 = colorbar('FontSize',20,'TickLabelInterpreter', 'latex');
GH.AlphaData = 0.7;
set(gca, 'YDir','normal')
axis equal

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by