2015-01-26 4 views
0

궁금한 점은 컬러 바의 제목이 맨 위에 표시되는 대신 길이에 따라 표시되도록 코드를 어떻게 변경하는지 궁금합니다. 내 색상 막대는 수직이고 내 윤곽 플롯의 오른쪽에 있습니다. 나는 그것의 위에 lable를 둘 수있다. 그러나 나는 그것의 길이의 아래의 하나를 놓을 수 없다. 또한 누구든지 matlab에 위 첨자를 쓰는 방법을 알고 있습니다. 나는 U '를 쓰려고하는데,' ''을 사용하면 명령 행이 닫힙니다. 감사 렘Matlab, colorbar label


답변

3

당신은 년 Colorbar에 레이블을 할당 ylabel를 사용할 수 있습니다. 또한 위 첨자를 인쇄하려면 ^{Text here}을 사용하십시오. 아래 첨자를 원하면 _{Text here}을 사용하십시오.

간단한 예 :

clear 
clc 
close all 

contourf(peaks) 
hC = colorbar('eastoutside'); 

LabelText = 'Label with ^{superscript}'; %// Use superscript 

ylabel(hC,LabelText,'FontSize',16) 

은이 결과 :

enter image description here

당신이 180도 회전하려는 경우, 당신은 ylabel의 위치를 ​​얻고 그것을 조금 수정할 수 있습니다, 180도 뒤집습니다. 즉이 줄을 추가

LabelPos = get(get(hC,'YLabel'),'Position') 
set(get(hC,'YLabel'),'Position',[LabelPos(1) + 4 LabelPos(2) LabelPos(3)],'Rotation',-90) 

당신은 기본적으로 현재 ylabel의 위치를 ​​얻고는 년 Colorbar와 중복되지 않도록 그 x 위치 몇 픽셀을 이동.

enter image description here

편집 : 이 제공 귀하의 의견에 따르면, 여기 당신이 YTick 라벨을 포맷 할 수 있습니다 방법입니다

CellLabel = str2double(cellstr(get(hC,'YTickLabel'))); %// Convert current label to numbers 
StringLabel = cell(1,numel(CellLabel)); 
for k = 1:numel(CellLabel) 

    StringLabel{k} = sprintf('%0.3f',CellLabel(k)); %// format into the format you want. 
end 
+0

예 내가 일을하려고 정확히 어떤 이잖아. 그러나, 나는 u '를 쓰려고하는데, LabelText ='U^{ '}'라고 쓰면됩니다. 오류 : 파일 : Rstress066D.m 줄 : 16 열 : 19 불균형 또는 예기치 않은 괄호 또는 대괄호. – Jerry

+0

오, 그러면 이것을 사용하고 싶을 것입니다 :'ylabel (hC, 'U' ','FontSize ', 16)'. 나는. 하나의 인쇄물에 2 개의 아포스트로피를 사용하십시오. –

+0

고마워요. 한 번만 더 질문합니다. 나는 1e-3의 순서로 데이터를 가지고있다. 어떻게 대신 막대의 위에 x10-3과 함께 3 대신에 .003 등으로 색상 표시 줄에 값을 표시 할 수 있습니까? – Jerry