How to change the median value on colorbar
    9 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Vince Clementi
 am 26 Sep. 2017
  
    
    
    
    
    Kommentiert: Vince Clementi
 am 29 Sep. 2017
            Hi All,
I am looking to adjust the linearity of my colorbar by changing the value of the median value For example, if colorbar ranges from [-6 6], the median is 0. I want to shift it to +1 or -1).
Is there a one-line solution to this or would I need to create a customized colorbar? If the latter, how would I go about doing that?
Thanks.
0 Kommentare
Akzeptierte Antwort
  Chad Greene
      
      
 am 26 Sep. 2017
        Hi Vince. The answer is you can do this, but you probably don't want to. I think it would mean developing a mathematical transfer function to scale your C data, plot the scaled data, then label the yticks on the colorbar, which will be scaled, but use labels that indicate the unscaled values.
For a simple example, here's what I mean, but simply scaling by a factor of two:
Z = peaks; 
figure
subplot(1,2,1) 
imagesc(Z) 
caxis([-6 6]) 
colorbar
Z2 = 2*Z;
subplot(1,2,2) 
imagesc(Z2) 
caxis([-6 6]*2) 
cb = colorbar; 
set(cb,'ytick',[-12 0 12]','yticklabel',[-6 0 6]')
That works, but it's overly complicated even for a simple scaling without moving the central value around. What you are proposing seems more complicated, more prone to error, and less intuitive for the viewer to understand. In general, if you ever find yourself wanting to do such funny things with the colorbar, or if you find yourself inventing complicated colormaps to show what you want to show, it's probably a good time to step back and rethink what you're doing.
7 Kommentare
  Chad Greene
      
      
 am 29 Sep. 2017
				It would be a easier to diagnose if you could provide a minimal working example. I wonder if you're getting the +/- sign of the pivot value mixed up? For example, here's something similar to your top plot using the default settings (pivot value is the center):
 imagesc(peaks(500)/12-1.2) 
 caxis([-1.8 -0.4])
 colorbar
 cmocean('bal')
Now try this, which is what I think you want:
 cmocean('bal','pivot',-1.1)
But I wonder if this is what you did instead:
 cmocean('bal','pivot',1.1)
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Color and Styling finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




