9

軸の値を30000または7000000ではなく、30Kまたは7Mとして出力したいと思います。これは、x <10 ^ 6の場合はK(キロ)サフィックスを追加し、x> = 10 ^ 6の場合はM(メガ)サフィックスを追加することを意味します。どうやってやるの?

現在のコードスニペット:

ax = pylab.gca()
formatter = matplotlib.ticker.FormatStrFormatter('%.f')
ax.xaxis.set_major_formatter(formatter)
4

2 に答える 2

13

私がこれまでにやってきた最高のコードは次のとおりです。

ax = matplotlib.pyplot.gca()
mkfunc = lambda x, pos: '%1.1fM' % (x * 1e-6) if x >= 1e6 else '%1.1fK' % (x * 1e-3) if x >= 1e3 else '%1.1f' % x
mkformatter = matplotlib.ticker.FuncFormatter(mkfunc)
ax.yaxis.set_major_formatter(mkformatter)
于 2011-08-12T12:23:56.663 に答える
8

さまざまな条件にサフィックスを適用する独自の関数を作成し、StrFormatterの代わりにFuncFormatterを使用する必要があります。 この例はあなたをカバーするはずです。

于 2011-07-02T16:07:59.820 に答える