Fill plot with gradient colors

조회 수: 94 (최근 30일)
Sergio Yanez-Pagans
Sergio Yanez-Pagans 2021년 10월 31일
이동: Adam Danz 2023년 8월 20일
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
Star Strider
Star Strider 2021년 11월 1일
I posted this Comment responding to a similar Comment in the referenced post.
Sergio Yanez-Pagans
Sergio Yanez-Pagans 2021년 11월 1일
Thanks Strider!

댓글을 달려면 로그인하십시오.

채택된 답변

Dave B
Dave B 2021년 10월 31일
편집: Dave B 2021년 10월 31일
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
Sergio Yanez-Pagans
Sergio Yanez-Pagans 2021년 11월 1일
이동: Adam Danz 2023년 8월 20일
Thank you Dave, that was really useful!
Excellent answer =)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Blue에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by