在对数轴中设置指数表示法ticks - Matlab

时间:2014-05-30 14:16:06

标签: matlab plot

我使用 semilogx 以对数刻度绘制数据,并让Matlab使用自动刻度和刻度标记对轴进行标记。

这通常很有效,除非范围不包括10的幂。在这些情况下,我得到的刻度标记如下:10 ^ 2.2 10 ^ 2.3 10 ^ 2.4 ...  阅读和解释真的很不舒服! enter image description here

有没有办法强制刻度标签纠正指数表示法(即150 x 10 ^ 2)?

(硬编码标签不是一个选项,因为轴范围会动态变化)

2 个答案:

答案 0 :(得分:0)

您可以将刻度标签更改为实际值,而不是指数标签,例如:

set(gca, 'XTickLabel', get(gca,'XTick'))

这只是使用每个XTick出现的实际值作为该XTick的图例。你得到奇数(因为它们将对应于统一对数间隔值),但至少它们是可读的。

答案 1 :(得分:0)

好的,我用sprintf解决了它:

xt = get(gca,'xtick')
xt_label = sprintf('%.2e|',xt)
set(gca,'xticklabel',xt_label)

现在我明白了:

enter image description here