Fill plot with gradient colors
    33 views (last 30 days)
  
       Show older comments
    
I'm trying to plot a signal, for example cos(x), with a red gradient colormap for positive values and a blue one for negative values. Something similar to the solution previously discussed in:

I haven't been able to make this work for me, any suggestions? 
Accepted Answer
  Dave B
    
 on 31 Oct 2021
        
      Edited: Dave B
    
 on 31 Oct 2021
  
      x=linspace(0,4*pi,100);
y=cos(x);
patch([x flip(x)],[y zeros(size(y))],[y zeros(size(y))])
figure
patch([x flip(x)],[y zeros(size(y))],[y zeros(size(y))])
colormap jet
figure
patch([x flip(x)],[y zeros(size(y))],[y zeros(size(y))])
colormap([cool;hot])
Or you could make your own colormap, just plug in red green and blue values that suit you (first column is red, second column is green, third column is blue):
figure
patch([x flip(x)],[y zeros(size(y))],[y zeros(size(y))])
cmap = ones(256,3);
cmap(129:256,2)=linspace(0,1,128);
cmap(129:256,3)=linspace(0,1,128);
cmap(1:128,1)=linspace(1,0,128);
cmap(1:128,2)=linspace(1,0,128);
colormap(cmap);
More Answers (0)
See Also
Categories
				Find more on Blue 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!


