Change upper limit of HSV colormap

8 views (last 30 days)
newbie9
newbie9 on 5 Nov 2018
Commented: newbie9 on 6 Nov 2018
Is there any way to change the upper limit of the HSV colormap (https://www.mathworks.com/help/matlab/ref/hsv.html), so that the high and low aren't both red?
Example application: Data ranges from 1 to 10; values of 1 and 10 both plot as red

Accepted Answer

newbie9
newbie9 on 6 Nov 2018
This actually is what I was looking for; the above answers are helpful for manipulating the HSV matrix, but this by-passes that need: https://www.mathworks.com/help/matlab/ref/jet.html
  2 Comments
Image Analyst
Image Analyst on 6 Nov 2018
jet is a different colormap than hsv so I don't know how this answers your question. It's not merely rotated through hues or changing what color of the hsv colormap is at the top of the colorbar. There are other colormaps like parula, summer, winter, hot, etc.
newbie9
newbie9 on 6 Nov 2018
Question was, how to prevent high and low ends from both showing up as red? Trying something other than HSV is an acceptable answer.

Sign in to comment.

More Answers (2)

Walter Roberson
Walter Roberson on 5 Nov 2018
The hsv color map is sorted by first component, which is Hue. It is a feature of hsv hue that hue is an angle in a circle, and since circles circle, both high and low angles are red hues, same as the fact that both 1 degree and 359 degrees are nearly the same place in a circle.
You could sort hsv() with respect to a different column and colormap() the results. Or you could do something like hsv() for twice as many colors as you need and then throw away the last half and colormap() what is left.
  1 Comment
newbie9
newbie9 on 5 Nov 2018
Edited: newbie9 on 5 Nov 2018
That makes sense, thank you for the explanation and advice

Sign in to comment.


Image Analyst
Image Analyst on 5 Nov 2018
Try circshift() to rotate the colormap vertically.
  2 Comments
newbie9
newbie9 on 5 Nov 2018
I didn't know about circshift(), thank you
Image Analyst
Image Analyst on 5 Nov 2018
But it works, right?
You can also use caxis() to specify what values in your data correspond to the upper and lower colors. This will allow you to use just a part of the colormap.
Finally, you can just create your own colormap N-by-3 array if you want to use that with the colormap() function.

Sign in to comment.

Categories

Find more on Colormaps in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!