1. ホーム
  2. python

[解決済み] matplotlibで軸の数字をコンマで区切って数千にフォーマットするには?

2023-05-09 06:31:06

質問

X軸の数値の書式を次のように変更するにはどうしたらよいでしょうか。 10,000 の代わりに 10000 ? 理想的には、このようなことをしたいだけです。

x = format((10000.21, 22000.32, 10120.54), "#,###")

以下はそのコードです。

import matplotlib.pyplot as plt

# create figure instance
fig1 = plt.figure(1)
fig1.set_figheight(15)
fig1.set_figwidth(20)

ax = fig1.add_subplot(2,1,1)

x = 10000.21, 22000.32, 10120.54

y = 1, 4, 15
ax.plot(x, y)

ax2 = fig1.add_subplot(2,1,2)

x2 = 10434, 24444, 31234
y2 = 1, 4, 9
ax2.plot(x2, y2)

fig1.show()

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

使用方法 , として フォーマット指定子 :

>>> format(10000.21, ',')
'10,000.21'

また str.format の代わりに format :

>>> '{:,}'.format(10000.21)
'10,000.21'


matplotlib.ticker.FuncFormatter :

...
ax.get_xaxis().set_major_formatter(
    matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))
ax2.get_xaxis().set_major_formatter(
    matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))
fig1.show()

<イグ