2011-07-02 5 views
4

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

現在のコードスニペット:あなたがあなた自身の機能を記述する必要があります

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

答えて

4

は、様々な条件のための接尾辞を適用し、FuncFormatterの代わりStrFormatterを使用しています。 This exampleはあなたをカバーする必要があります。

7

私がこれまでに来ているための最良のコードは次のとおりです。

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) 
関連する問題