How to add fixed Colorbar based on a vector for 2D scatter plot with 3 vectors

5 views (last 30 days)
I want to compare two [2D scatter] plots that both have three variables (x,y,z). I'm plotting x against y and showing vector z for both plots by color. I need to make the colorbar fixed so I can compare the two plots. How can I make this colorbar range fixed for both? Thank you in advance
if true
figure
pointsize = 10;
scatter(x1, y1, pointsize, z1)
colorbar;
figure
pointsize = 10;
scatter(x2, y2, pointsize, z2)
colorbar;
end
  1 Comment
Jon Hinwood
Jon Hinwood on 15 Oct 2020
I have tried using caxis, which I use with the plot command, but it has no effect and the range is set automatically to the full range of my data. I have tried placing the caxis command before, after the specification of colormap and before and after the call to scatter and in all 4 positions. Also tried rebooting computer and repeating the trials.
I did find that caxis only worked with plot if the caxis command was after the colormap and before the plot command. I an using Matlab R2019b Academic with Windows 10 both fully updated. Help please!
Jon. 15 Oct 2020

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 23 Oct 2018
One option is to normalize the ‘z’ values by scaling them with respect to the range of both ‘z1’ and ‘z2’:
figure
pointsize = 10;
scatter(x1, y1, pointsize, (z1-min([z1(:);z2(:)]))/max([z1(:);z2(:)]))
colorbar;
figure
pointsize = 10;
scatter(x2, y2, pointsize, (z2-min([z1(:);z2(:)]))/max([z1(:);z2(:)]))
colorbar;
The colorbar will be the same for both.
  4 Comments
Yaser Khojah
Yaser Khojah on 23 Oct 2018
Thanks a lot for your help. It worked finally. I just need to find a better way know to see these colors since I have problem with seeing color haha but thanks a lot.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!