2011-03-28 1 views
6

최소 예 :다른 색상 맵을 사용하는 등고선 플롯으로 pcolor 플롯을 오버레이하는 방법은 무엇입니까? 그것을 달성하지 않습니다

이 윤곽 플롯과 그레이 스케일 colourmap의 의사 컬러 플롯을 모두 보여줍니다
[X,Y,Z] = peaks; 
figure; 
pcolor(X,Y,Z); 
shading flat; 
hold all; 
axes; 
contour(X,Y,Z); 
colormap gray; % this should only apply to the contour plot axes... 
axis off;  % ... but it doesn't 

. 그러나, 내가 달성하고자하는 것은 단지 윤곽을 회색으로 돌리는 것입니다.

이것은 단지 최소한의 예입니다. 실제로 윤곽 플롯은 다른 범위의 다른 데이터이므로 두 개의 독립적 인 caxis 설정이 필요합니다.

당신은 두 가지 색상 맵을 catenating 및 기능의 값들은 색상 맵의 오른쪽 부분에 액세스하도록 있는지 확인함으로써 문제를 해결할 수
+0

과 관련이 있습니다. http://stackoverflow.com/questions/1744667/plot-overlay-matlab –

답변

4

: 더 들어

cm = [jet(64);gray(64)]; 
figure, 
pcolor(X,Y,Z) 
shading flat 
hold on 
%# Z in the contour starts after the maximum 
%# of Z in pcolor 
contour(X,Y,Z-min(Z(:))+max(Z(:))+2,'LineWidth',2) 
%# apply the colormap 
colormap(cm) 

enter image description here

을 편리한 솔루션 인 경우 this file exchange pick of the week

+1

감사합니다. 기능 범위가 규모에 따라 다르다면주의해야 할 수도 있습니다. –

+0

에 링크 된 [freezeColors] (http://www.mathworks.com/matlabcentral/fileexchange/7943)도보실 수 있습니다. @Tobias Kienzler : 예, 데이터 스케일링을 얻는 것이 까다로울 수 있습니다. colormaps right. 또한 데이터 팁에 올바른 값이 표시되지 않으면 성가신 일이 될 수 있습니다. 내 솔루션 정말 해결 방법입니다. – Jonas