我使用 semilogx 以对数刻度绘制数据,并让Matlab使用自动刻度和刻度标记对轴进行标记。
这通常很有效,除非范围不包括10的幂。在这些情况下,我得到的刻度标记如下:10 ^ 2.2 10 ^ 2.3 10 ^ 2.4 ... 阅读和解释真的很不舒服!
有没有办法强制刻度标签纠正指数表示法(即150 x 10 ^ 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)
现在我明白了: