2014-12-31 6 views
0

colorbar을 사용하여 값이 아닌 크기를 표시하는 방법을 찾으려고합니다. 현재 색상 막대의 범위는 [-x x]이며 음수 값은 파란색 파랑 색상입니다. 그래프를 칠 색상을 결정할 때 컬러 바가 부호 값을 무시하기를 원합니다.컬러 바를 사용하여 수량의 절대 값을 어떻게 그릴 수 있습니까?

범위를 CLim[0 x]으로 설정하려고 시도했지만 음수의 파란색 만 페인트합니다.

예를 들어 구체를 그릴 것입니다. 구체를 플롯하면 원점에 의 중심에 위치하며 색상은 z 축 값만 반영합니다. 그러나 컬러 바가 중심으로부터 거리의 크기를 나타내기를 원합니다. 따라서이 경우 구가 반경을 나타내는 단색이어야합니다.

아이디어가 있으십니까?

+3

분산 형 플롯을 사용하는 경우'scatter (t, x, [], abs (x)), colorbar'를 사용할 수 있습니다. 예제를 게시하여 플롯하려는 것에 대한 추가 정보를 포함 할 수 있습니다. – DreamBig

+1

또한 행렬을 데이터로 사용하는 abs (matrix)를 사용하는 것이 좋습니다. pcolor 및 contourf를 포함한 모든 플로팅 루틴에서 작동합니다. – boxofchalk1

+0

색상 막대를 수정하는 방법이 있지만 일반적으로 matlab 플롯의 자동 기능 중 일부가 제거됩니다 (예 : 수동 눈금 레이블을 사용하면 그림의 크기를 조정할 때 눈금 레이블이 자동으로 업데이트되지 않음). 이로 인해 주어진 눈금 레이블 주위에 감싸 인다). 이러한 것들은 또한보기 좋게하기 위해 어떤 작업이 필요합니다. 따라서 플롯 데이터를 수정하는 것이 좋습니다. 그럼 그냥 matlab에 입력으로 줄거리를 줄 수 있습니다. 절대 값을 플롯하려면 절대 값을 입력으로 사용하는 것이 좋습니다. – patrik

답변

1

숫자를 그리기 전에 플로팅하려는 데이터의 크기 (예 : abs(data) 함수 사용)를 취해야합니다. 그런 다음 caxis([min max]) 기능을 사용하여 컬러 막대 스케일을 설정할 수 있습니다.

예 :

rawData=repmat([-10:1:10],10,1); 

figure(1),imagesc(rawData),caxis([0 10]) % All raw values below 0 are plotted as blue 

magnData=abs(rawData) % Take absolute value of raw data 

figure(2),imagesc(magnData),caxis([0 10]) % Raw negative values are now plotted in the same color as positive raw values (i.e. ignoring the sign, per the solution you requested). 

귀하의 솔루션 (CLim) 색상 범위 [0 x]을 설정하는 것은의 경우, 0 (파란색의 값으로 낮은 0 이상의 모든 값의 색상을 연결하기 때문에 작동하지 않았다 "제트"컬러 맵).

+0

3D 그래 찍기에도 여전히 적용 할 수 있습니까? – niwhsa

관련 문제