如何避免mayavi的mlab.axes中的指数滴答?

时间:2013-10-09 14:59:40

标签: python-2.7 mayavi

有控制的参数吗?我找不到它。
我用

import numpy as np
from enthought.mayavi import mlab
from scipy.interpolate import griddata
from enthought.mayavi.modules.axes import Axes

x,y,z =np.loadtxt('mydata',delimiter=',',usecols=(0,1,2),unpack=True)
xi = np.linspace(min(x), max(x),200)
yi = np.linspace(min(y), max(y),200).reshape(200,1) 
zi = griddata((x, y), z, (xi, yi),method='nearest')  
mlab.surf(xi,yi,zi,warp_scale="auto")
mlab.axes.label_format='%.2f'
mlab.axes(xlabel='x', ylabel='y', zlabel='z',ranges=(1000,1100,1200),nb_labels=5)
mlab.show()

并且输出图中的刻度类似于1.08e + 03和1.18e + 03.I add mlab.axes.label_format='%.2f',但没有任何变化。

1 个答案:

答案 0 :(得分:2)

我不知道是否有办法在构造时使用mlab指定它,但你可以深入研究tvtk对象(编辑:实际上它仍然在mayavi层中被捕获)并修改它:

>>> ax=mlab.axes()
>>> ax.axes.label_format
'%-#6.3g'
>>> ax.axes.label_format='%.2f'

请注意,您创建的轴实例的.axes.label_format格式需要修改。 ax是轴的实例。

您的新代码与以下最小代码段相当。请注意这不会对轴ax

的实例进行操作
>>> ax=mlab.axes()
>>> mlab.axes.label_format='%.2f'