Use distinct colormaps for two different surf plots on the same figure

조회 수: 52 (최근 30일)
Using R2016b, I would like to create two surf plots and use a different colormap for each one. It appears that the only way to assign a color map is to apply it to the axis handle. In the code below I was hoping that AxOne and AxTwo would be different objects, but alas, they appear to be the same thing. Hence when I change the colormap for AxTwo, it changes the colormap for both plots. Is there a way to set the colormap for the first surf to be 'cool' and for the second one to be 'hot'?
hold on;
[x,y,z] = peaks;
h1 = surf(x,y,z)
view(3)
AxOne = get(h1,'Parent');
colormap(AxOne,'cool');
h2 = surf(y,x,3+z)
AxTwo = get(h2,'Parent');
colormap(AxTwo,'hot');

채택된 답변

Walter Roberson
Walter Roberson 2017년 11월 11일
No, only container objects can hold colormaps, not individual graphics objects. User-created hggroup cannot hold them either.
You have two choices:
  1. use two axes, probably set to the same position, such as you might for plotyy or the newer yyaxis; or
  2. draw the first item with appropriate colormap, then use a tool such as the File Exchange freezeColors() to convert the item to RGB; once it is RGB, you can put up the second item and change colormaps, as the first item will no longer be using a colormap.

추가 답변 (0개)

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by