基本的に、matplotlib でプロットを生成する場合、y 軸の目盛りは数百万になります。桁区切りをオンにする (つまり、1000000 を 1,000,000 として表示する)、または小数点記号をオンにするにはどうすればよいですか?
質問する
1444 次
1 に答える
3
これを行うための組み込み関数はないと思います。(あなたの Q を読んだ後、私はそう思いました。確認したところ、ドキュメントで見つかりませんでした)。
いずれにせよ、自分で巻くのは簡単です。
(以下は完全な例です。つまり、共有された目盛りラベルを持つ 1 つの軸を持つ mpl プロットが生成されます。ただし、カスタムの目盛りラベルを作成するために必要なのは 5 行のコードだけです。関数に対して 3 行 (インポート ステートメントを含む))。カスタム ラベルを作成するために使用され、新しいラベルを作成して指定された軸に配置するために 2 つの線が使用されます)。
# first code a function to generate the axis labels you want
# ie, turn numbers greater than 1000 into commified strings (12549 => 12,549)
import locale
locale.setlocale(locale.LC_ALL, 'en_US')
fnx = lambda x : locale.format("%d", x, grouping=True)
from matplotlib import pyplot as PLT
import numpy as NP
data = NP.random.randint(15000, 85000, 50).reshape(25, 2)
x, y = data[:,0], data[:,1]
fig = PLT.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y, "ro")
default_xtick = range(20000, 100000, 10000)
# these two lines are the crux:
# create the custom tick labels
new_xtick = map(fnx, default_xtick)
# set those labels on the axis
ax1.set_xticklabels(new_xtick)
PLT.show()
于 2010-04-02T13:18:32.280 に答える