1. ホーム
  2. python

Python matplotlib figureで数値が指数に変換されるのを防ぐ方法

2023-09-19 10:45:09

質問

私はPythonでMatplotlibを使用して、簡単なx-yデータセットをプロットしています。これはきれいなグラフを作成しますが、プロットされたグラフの様々なセクションを図ビュー( plt.show() を実行したときに表示されます) を使ってプロットされたグラフのさまざまな部分を &qu;quot;ズームすると、X 軸の値が標準の数値形式 (1050, 1060, 1070 など) から指数表記による科学形式 (1, 1.5, 2.0 など、X 軸ラベルは次のように指定します) に変わってしまうのです。 +1.057e3 ).

私は、指数形式を使用するのではなく、軸の単純な番号付けを保持するために私の図を希望します。Matplotlibにこれをさせる方法はありますか?

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

ティックラベルの書式を制御するのは 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で制御できます。