1. ホーム
  2. python

[解決済み] Matplotlib: 目盛りラベルの浮動小数点数の形式を指定する

2023-02-19 20:54:02

質問

matplotlibのサブプロット環境において、フォーマットを10進数2桁に設定しようとしています。残念ながら、このタスクを解決する方法を私は持っていません。

Y軸に科学的記数法を使用しないようにするために、私は以下を使用しました。 ScalarFormatter(useOffset=False) を使用しました。私は、私の課題は、使用するフォーマッタにさらなるオプション/引数を渡すことによって解決されるべきだと思います。しかし、私は matplotlib のドキュメントでヒントを見つけることができませんでした。

小数点以下2桁、またはゼロ桁(両方のケースが必要)を設定するにはどうしたらよいでしょうか?残念ながらサンプルデータを提供することができません。


-- SNIPPET --

f, axarr = plt.subplots(3, sharex=True)

data = conv_air
x = range(0, len(data))

axarr[0].scatter(x, data)
axarr[0].set_ylabel('$T_\mathrm{air,2,2}$', size=FONT_SIZE)
axarr[0].yaxis.set_major_locator(MaxNLocator(5))
axarr[0].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[0].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[0].grid(which='major', alpha=0.5)
axarr[0].grid(which='minor', alpha=0.2)

data = conv_dryer
x = range(0, len(data))

axarr[1].scatter(x, data)
axarr[1].set_ylabel('$T_\mathrm{dryer,2,2}$', size=FONT_SIZE)
axarr[1].yaxis.set_major_locator(MaxNLocator(5))
axarr[1].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[1].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[1].grid(which='major', alpha=0.5)
axarr[1].grid(which='minor', alpha=0.2)

data = conv_lambda
x = range(0, len(data))

axarr[2].scatter(x, data)
axarr[2].set_xlabel('Iterationsschritte', size=FONT_SIZE)
axarr[2].xaxis.set_major_locator(MaxNLocator(integer=True))
axarr[2].set_ylabel('$\lambda$', size=FONT_SIZE)
axarr[2].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[2].yaxis.set_major_locator(MaxNLocator(5))
axarr[2].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[2].grid(which='major', alpha=0.5)
axarr[2].grid(which='minor', alpha=0.2)

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

の関連ドキュメントを参照してください。 一般 具体的には

from matplotlib.ticker import FormatStrFormatter

fig, ax = plt.subplots()

ax.yaxis.set_major_formatter(FormatStrFormatter('%.2f'))

<イグ