1. ホーム
  2. python

[解決済み] matplotlib.pyplotで科学的記法を使わないようにする [重複].

2022-10-21 23:36:05

質問

私は数時間前からpyplotで科学的記法を抑制しようとしています。 複数の解決策を試しても成功しなかったので、私はいくつかの助けを求めています。

plt.plot(range(2003,2012,1),range(200300,201200,100))
# several solutions from other questions have not worked, including
# plt.ticklabel_format(style='sci', axis='x', scilimits=(-1000000,1000000))
# ax.get_xaxis().get_major_formatter().set_useOffset(False)
plt.show()

<イグ

どのように解決するのですか?

あなたの場合、実際にはオフセットを無効にしたいのでしょう。 科学的記数法の使用は、オフセット値で表示することとは別の設定です。

しかし ax.ticklabel_format(useOffset=False) は動作したはずです(動作しなかったものの一つに挙げられていますが)。

たとえば

fig, ax = plt.subplots()
ax.plot(range(2003,2012,1),range(200300,201200,100))
ax.ticklabel_format(useOffset=False)
plt.show()

<イグ

オフセットとサイエンティフィック・ノーティオンの両方を無効にしたい場合は ax.ticklabel_format(useOffset=False, style='plain') .


オフセットと科学的記数法の違い。

matplotlibの軸フォーマットでは、"科学的記数法"は 乗数 を表し、quot;offset" は別の用語で を追加したものです。 .

この例で考えてみましょう。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(1000, 1001, 100)
y = np.linspace(1e-9, 1e9, 100)

fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()

X軸はオフセットされます。 + 記号に注意)、Y軸は科学的記数法(乗数として -- プラス記号なし)を使用します。

どちらかを別々に無効化することができます。 最も便利な方法は ax.ticklabel_format メソッド (または plt.ticklabel_format ).

例えば、呼び出すと

ax.ticklabel_format(style='plain')

Y軸の科学的記数法を無効にすることにします。

そして、もし私たちが

ax.ticklabel_format(useOffset=False)

X軸のオフセットを無効にしますが、Y軸の科学的記法はそのままにします。

最後に、両方のスルーを無効にすることができます。

ax.ticklabel_format(useOffset=False, style='plain')

<イグ