2012-02-08 2 views
0

MATLAB의 로그 플롯은 10^x 위치의 축에만 레이블을 붙입니다. 여기서 x는 정수 (예 : 10^4, 10^5, 10^6)입니다. 경우에 따라 중간 사이트 또는 작은 틱 (예 : 5 * 10^4, 5 * 10^5)의 라벨이 필요할 수 있습니다.MATLAB : 축 레이블 위 첨자

이러한 레이블을 배치하려면 적절한 xy 좌표와 함께 text 명령을 사용했습니다. 그러나 텍스트 명령의 위 첨자 폰트는 기본 축 레이블의 위 폰트와 다릅니다. 이 축 레이블과 텍스트의 글꼴이 따라 동일하게 설정되어있는 경우에도 마찬가지입니다 : 특히

set(0,'DefaultAxesFontName','Helvetica'); 
set(0,'DefaultTextFontName','Helvetica'); 
set(0,'DefaultTextFontSize',15); 
set(0,'DefaultAxesFontSize',15); 

는 첨자 글꼴 크기 텍스트 상자에 비해 기본 축 레이블 작게 나타납니다. 텍스트 상자의 글꼴과 축 레이블의 글꼴이 동일하도록 (위 첨자 포함)이 불일치를 해결할 수있는 방법이 있습니까? 당신은이 같은 x 및 y 축 점을 설정할 수 있습니다

답변

1

: 여기에 임의의를 사용하여 완벽한 예입니다 :

figure 
set(gca,'xtick',10.^[0.5:0.5:3]) 
set(gca,'ytick',10.^[0.5:0.5:3]) 

xticklabel

편집이라는 속성도 있습니다 당신에게 0.5 로그 (10)의 단계를 제공합니다 레이블, 과학 표기법 :

semilogx([2:100:10e4],[2:100:10e4]) 
axis([2 2e4 2 10000]) 
xticks=10.^[0.5:0.5:10]'; 
al={}; 
for i = 1:length(xticks) 
     tmps=sprintf("%1.1e}",xticks(i)); 
     tmps=strrep(tmps,"e","x10^{"); # replace e with x10^{ 
     tmps=strrep(tmps,"+0","");  # +0 does not add any info 
     tmps=strrep(tmps,"-0","-");  # -into -123 
     tmps=strrep(tmps,"+","");  # + does not add any info 
     al(i)=tmps; 
end 
set(gca,'xtick',xticks); 
set(gca,'xticklabel',al) 
+0

고맙습니다. 과학 표기법을 사용하여 레이블을 인쇄하는 방법을 알고 있습니까? 'set (gca, 'ytick', 10.^(1 : 0.5 : 2.5))'는'10','31.6228','100','316.2278'을 출력합니다. 또한 10^2.5 (= 316.2278) 대신 5 * 10^2 정도가됩니다. – user001

+0

@ user001 내 업데이트를 살펴보십시오. Btw, '5 * 10^x'이 가능합니다. 루프를 만들고 원하는 숫자가 들어있는'xtick' 벡터를 만듭니다. –