1

カラーバーに 2 つの目盛りを配置したいと思います。matplotlib.

私の問題は、カラーバーの数値の形式にあります。1.99e+00の代わりにしたい1.9e0です。数値が四捨五入された方が良いでしょう(例2.0e0

番号0はそのままにしておく必要があります0

コードは次のとおりです。

from scipy import *
import matplotlib.pylab as plt
import numpy as np

def main():
# Creating the grid of coordinates x,y 
x,y = ogrid[-1.:1.:.01, -1.:1.:.01]

z = 3*y*(3*x**2-y**2)/4 + .5*cos(6*pi * sqrt(x**2 +y**2) + arctan2(x,y))

fig = plt.figure()

ax = fig.add_subplot(111)
result = ax.imshow(z, 
                   origin='lower', 
                   extent=[0,2,0,400],              
           interpolation='nearest',
           aspect='auto'
          )
cbar = fig.colorbar( result , ticks=[ 0 , z.max() ])
    cbar.ax.set_yticklabels([ 0 ,  '{0:.2e}'.format( z.max()) ]) 
    cbar.outline.remove()

plt.show()

if __name__ == '__main__':
    main()

ここに画像の説明を入力

4

1 に答える 1

3

使用している形式は、小数点以下2桁ではなく、1桁になるように簡単に変更できます。これには、自動的に丸めが含まれます。テキストの変更として行う場合、必要な他の変更も簡単です。

def format_yticklabel(number):
    return '{0:.1e}'.format(number).replace('+0', '').replace('-0', '-')

>>> format_yticklabel(1.99)
'2.0e0'
于 2012-04-25T15:34:12.340 に答える