2012-02-08 140 views
0

MATLAB中的日誌圖只在位置10^x處標記軸,其中x是整數(例如,10^4,10^5,10^6)。有時候,人們可能希望標籤位於中間位置或次要位置(例如5 * 10^4,5 * 10^5)。MATLAB:軸標籤上標

爲了放置這樣的標籤,我採取了使用text命令和適當的xy座標。但是,文本命令中上標的字體與默認軸標籤中的不同。這是真實的,即使對於軸標籤和文本的字體被設置爲通過以下相同:

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

特別地,上標字體大小似乎是相比於文本框在默認軸標籤小。有沒有辦法解決這種差異,使文本框中的字體和軸標籤中的字體相同(包括上標)?

回答

1

您可以設置X和Y軸點是這樣的:

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

爲您提供了0.5日誌10步驟還有一個名爲xticklabel

編輯屬性:這是一個使用任意一個完整的示例標籤,科學計數法:

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'。另外,如何5 * 10^2而不是10^2.5(= 316.2278)。 – user001 2012-02-08 08:30:16

+0

@ user001,看看我的更新。順便說一句,有'5 * 10^x'是可能的。建立一個循環,並建立一個包含你想要的數字的「xtick」向量。 – 2012-02-08 10:08:43