2013-11-26 1 views
4

일부 지형 데이터를 matlab에로드하고이 데이터의 surf, surfl 및 contour 플롯을 작성하여 색상 맵을 사용하여 색상을 지정합니다. 지형 데이터의 범위는 0 ~ 2500m입니다.matlab 표면 플롯을위한 사용자 정의 색상

200m 파란색 아래, 500m 빨간색 위쪽 및 200m ~ 500m 녹색 아래의 모든 지형을 색칠하는지도를 그립니다. 이것을 할 수 있습니까? 아무도 나에게 그 명령에 관한 조언을 해 줄 수 있니?

많은 감사

자세한 내용은

답변

2
hsurf=surf(...) 
set(hsurf,'FaceColor','interp') 

doc surf.

+0

에 의해 생성된다. 이 키를 사용하여 각 높이를 색상으로 설정하는 방법을 말씀해 주시겠습니까? 답장을 보내 주셔서 감사합니다. – user3035970

6

colormap과 네 번째 입력은 surf입니다.

다음 플롯

enter image description here

이 플롯은 어떤 다른 모양 만든하지 않은

[X,Y,Z] = peaks(1000); 

%colormap 
cmap = [0.6 0.2 0.4; 
     0.5 0.5 0.5; 
     0.1 0.9 0.9]; 

Zcolor = zeros(size(Z));     
threshold = 2; 
Zcolor(Z <= -threshold)     = 1; % first row of cmap 
Zcolor(Z > -threshold & Z < threshold) = 2; % second row of cmap 
Zcolor(Z >= threshold)     = 3; % third row of cmap 

figure('Color','w'); 
surf(X, Y, Z, Zcolor, 'EdgeColor', 'None'); 
colormap(cmap); 
light('Position', [0 -2 1]) 
+0

그것은 매우 도움이됩니다. 그러나 코드를 수정하여 데이터에 적용하면 Zcolor (Z <= -threshold) = 1; 이 제대로 작동하지 않습니다. 마찬가지로, 그것은 cmap의 첫 번째 행에 정의 된 색상을 사용하지 않고 다른 라인을 사용하고 있습니다. 이 세 가지 'Zcolor'행 모두에서 발생합니다. – user3035970

+0

MATLAB은이 데이터에 대해 선형 변환을 수행하여 현재 색상 맵에서 색상을 얻습니다. 일반적으로 가장 낮은 Zcolor 값에는 최소 색상 표가 할당되고 가장 높은 Zcolor 값에는 최대 값이 지정됩니다. 이 두 값 사이의 모든 값은 크기가 조절됩니다. – marsei