Matplotlib yaxis范围显示使用绝对值而不是偏移值?

Dav*_*ole 26 python numpy matplotlib

我有以下范围的numpy数据(usec时间戳的增量):

array([ 4.312,  4.317,  4.316,  4.32 ,  4.316,  4.316,  4.319,  4.317,
    4.317,  4.316,  4.318,  4.316,  4.318,  4.316,  4.318,  4.317,
    4.317,  4.317,  4.316,  4.317,  4.318,  4.316,  4.318,  4.316,
    4.318,  4.316,  4.317,  4.317,  4.318,  4.316,  4.317,  4.317,
    4.317,  4.317,  4.317,  4.316,  4.319,  4.315,  4.319,  4.315,
    4.319,  4.315,  4.316,  4.319,  4.317,  4.317,  4.317,  4.318,
    4.315,  4.317,  4.317,  4.317,  4.319,  4.314,  4.32 ,  4.315,
    4.317,  4.318,  4.315,  4.318,  4.317,  4.317,  4.317,  4.316,
    4.317,  4.318,  4.317,  4.317,  4.317,  4.315,  4.319,  4.317,
    4.315,  4.319,  4.316,  4.318,  4.318,  4.315,  4.318,  4.317,
    4.317,  4.321])
Run Code Online (Sandbox Code Playgroud)

当我用matplotlib.pyplot绘图时:

 import matplotlib.pyplot as plt
 plt.plot( deltas ) 
 plt.show()
Run Code Online (Sandbox Code Playgroud)

我得到以下情节.为什么Y轴按比例缩放?如何将Y轴标记为数据,而不是数据的偏移量?有时情节是"+ 4.nnn",有时它不是(取决于数据范围?).

绘制"奇怪":
绘制不好

绘制"正确":
正确绘制

HYR*_*YRY 42

将useOffset设置为False:

ax = plt.gca()
ax.ticklabel_format(useOffset=False)
Run Code Online (Sandbox Code Playgroud)

  • 这在MPL 1.3.0中不再适用于我.它说这现在只适用于ScalarFormatter.所以这里的简短答案为我解决了这个问题:http://stackoverflow.com/questions/3677368/matplotlib-format-axis-offset-values-to-whole-numbers-or-specific-number (7认同)

mat*_*fee 10

你也可以使用

ax = plt.gca()
ax.set_yticklabels(ax.get_yticks())
Run Code Online (Sandbox Code Playgroud)

虽然我更喜欢@ HYRY的答案.

  • 这个答案很容易导致完全错误的结果。切勿在未固定位置的情况下设置标签!最好使用任何其他答案。 (3认同)

Evg*_*eev 7

这个答案建议禁用偏移量作为全局设置,这对我有用:

matplotlib.rcParams['axes.formatter.useoffset'] = False
Run Code Online (Sandbox Code Playgroud)