2012-02-08 7 views
0

MATLABのログプロットは、軸を10^xの位置にラベル付けするだけです(xは整数(10^4,10^5,10^6など))。場合によっては、中間部位または小目盛り(例えば5×10^4,5×10^5)の標識が必要な場合もある。MATLAB:axis label superscript

このようなラベルを配置するために、適切な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

EDITという属性もあり、あなたに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'ベクトルを作ります。 –