Fill plot with gradient colors

81 visualizaciones (últimos 30 días)
Sergio Yanez-Pagans
Sergio Yanez-Pagans el 31 de Oct. de 2021
Movida: Adam Danz el 20 de Ag. de 2023
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?
  2 comentarios
Star Strider
Star Strider el 1 de Nov. de 2021
I posted this Comment responding to a similar Comment in the referenced post.
Sergio Yanez-Pagans
Sergio Yanez-Pagans el 1 de Nov. de 2021
Thanks Strider!

Iniciar sesión para comentar.

Respuesta aceptada

Dave B
Dave B el 31 de Oct. de 2021
Editada: Dave B el 31 de Oct. de 2021
Here's one way to make the patch with the color gradient:
x=linspace(0,4*pi,100);
y=cos(x);
patch([x flip(x)],[y zeros(size(y))],[y zeros(size(y))])
You could use jet or turbo to have blue on the bottom and red on the top:
figure
patch([x flip(x)],[y zeros(size(y))],[y zeros(size(y))])
colormap jet
Or you could mix hot and cool colormaps:
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);
  1 comentario
Sergio Yanez-Pagans
Sergio Yanez-Pagans el 1 de Nov. de 2021
Movida: Adam Danz el 20 de Ag. de 2023
Thank you Dave, that was really useful!
Excellent answer =)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Blue en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by