color-coding a 2D plot

조회 수: 42(최근 30일)
Vahid
Vahid 2012년 3월 27일
Hello everybody,
I am wondering how we can plot a 2D figure,x vs. y, which the amplitude of a given mathematical function, let say f(x,y) where e.g. f=sqrt(x.^2+y.^2), is encoded with colors in 2D plot as if max(f) is shown with e.g. blue color and min(f) with red color.
thank you so much, --V

채택된 답변

Kevin Holst
Kevin Holst 2012년 3월 27일
unfortunately shading interp doesn't seem to work on contourf so here's an inelegant solution to your problem.
[x,y] = meshgrid(-10:0.1:10,-10:0.1:10); % just to get some x and y values
z = sqrt(x.^2 + y.^2);
surf(x,y,z)
shading interp
set(gca,'cameraposition',[0 0 180]) % this essentially turns a 3d surface plot into a 2d plot
colormap(flipud(jet))
  댓글 수: 1
Vahid
Vahid 2012년 3월 27일
nice solution! thanks again :-D

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

추가 답변(2개)

Kevin Holst
Kevin Holst 2012년 3월 27일
how about:
[x,y] = meshgrid(-10:0.1:10,-10:0.1:10); % just to get some x and y values
z = sqrt(x.^2 + y.^2);
contourf(x,y,z)
colormap(flipud(jet))
Is that what you're envisioning?

Vahid
Vahid 2012년 3월 27일
Thanks Kevin! What I am looking for is very close to what your commands plot. I'd like to have a continuous color changing rather than using different colors, I mean contentiously changing from [0 0 1] to [1 0 0] which each three-element row vector is the RGB triple.

Community Treasure Hunt

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

Start Hunting!

Translated by