首页 > 解决方案 > 使用 ScalarFormatter 在 Matlplotlib 中强制使用科学记数法和限制小数

问题描述

我有一个图可以接受规模差异很大的数据。为了保持轴干净,我强制使用科学记数法,这样数字就不会偏离数字。为此,我正在使用 ScalarFormatter 并像这样调整 ticklabel_format:

ax.yaxis.set_major_formatter(ScalarFormatter(useMathText=True, useOffset=False))
ax.ticklabel_format(style='sci', scilimits=(0,0), axis='both')

科学记数法完全按照我想要的方式绘制,但有时会显示太多小数点。 y 轴刻度标签被剪裁

我在这里发现了一个类似的问题:在 matplotlib 图的轴上显示小数位和科学记数法

但我不希望像在接受的解决方案中那样在每个标签上显示指数因子。此外,FormatStrFormatter 会覆盖我之前的 ScalarFormatter 设置,所以我认为只能使用 1 个 Formatter。

我想要一个总是看​​起来像这样的图:其中刻度标签总是限制为 1 个小数

标签: pythonmatplotlibxticks

解决方案


推荐阅读