78

Python で Matplotlib を使用して、単純な xy データセットをプロットしています。これにより見栄えの良いグラフが生成されますが、Figure ビュー ( を実行すると表示されるplt.show()) を使用してプロットされたグラフのさまざまなセクションを「ズームイン」しすぎると、x 軸の値が標準の数値形式 (1050、1060、 1070 など) を指数表記 (x 軸のラベルが の 1、1.5、2.0 など) の科学的形式に変換し+1.057e3ます。

指数形式を使用するのではなく、軸の単純な番号付けを維持することをお勧めします。Matplotlib にこれを強制する方法はありますか?

4

6 に答える 6

100

ティック ラベルの書式設定はFormatterオブジェクトによって制御されます。特別なことを何もしていないと仮定すると、このオブジェクトはScalerFormatterデフォルトで になります。このフォーマッタは、表示される値のわずかな変化が非常に小さい場合、一定のシフトを使用します。これを回避するには、単にオフにします。

plt.plot(arange(0,100,10) + 1000, arange(0,100,10))
ax = plt.gca()
ax.get_xaxis().get_major_formatter().set_useOffset(False)
plt.draw()

一般的に科学表記法を避けたい場合は、

ax.get_xaxis().get_major_formatter().set_scientific(False)

axes.formatter.useoffsetこれは、 rcparamを介してグローバルに制御できます。

于 2013-02-05T16:11:56.040 に答える
18

次のようなものを使用できます。

from matplotlib.ticker import ScalarFormatter, FormatStrFormatter

ax.xaxis.set_major_formatter(FormatStrFormatter('%.0f'))
于 2015-03-04T05:24:43.053 に答える