0

MATLAB 中的对数图仅在位置 10^x 处标记轴,其中 x 是整数(例如,10^4、10^5、10^6)。有时,可能需要在中间位置或次要刻度处添加标签(例如,5*10^4、5*10^5)。

为了放置这样的标签,我使用了text带有适当坐标x的命令。y但是,文本命令中上标的字体与默认轴标签中的字体不同。即使轴标签和文本的字体通过以下方式设置为相同也是如此:

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

特别是,与文本框相比,默认轴标签中的上标字体大小似乎更小。有没有办法解决这种差异,使文本框中的字体和轴标签中的字体相同(包括上标)?

4

1 回答 1

1

您可以像这样设置 x 和 y 轴点:

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

为您提供 0.5 log 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","-");     # -0123 into -123 
       tmps=strrep(tmps,"+","");       # + does not add any info
       al(i)=tmps;
end
set(gca,'xtick',xticks);
set(gca,'xticklabel',al)
于 2012-02-08T08:13:50.267 回答