0

我正在尝试学习 mayavi 来绘制一些 3D 数据。我的 xy 网格通常看起来像这样

import numpy 
from mayavi import mlab
x,y = numpy.mgrid[0:90:3j, 0:360:3j]
z= #some calculation
mlab.surf(x, y, z)
mlab.show()

情节看起来像

在此处输入图像描述

而使用 gnuplot 的情节看起来像这样

在此处输入图像描述

因此,mayavi 图像没有适当的纵横比。如何使用 mayavi 正确绘制数据?

4

2 回答 2

2

您可以使用这样的extent参数来处理该问题

import numpy 
from mayavi import mlab
x,y = numpy.mgrid[0:90:3j, 0:360:3j]
z= #some calculation
mlab.surf(x, y, z, extent=(0,1,0,1,0,1))
mlab.show()
于 2019-05-08T07:35:38.717 回答
1

gnuplot 生成的水平面产生一个跨越 0-90 范围的轴,该轴看起来至少与跨越 0-400 范围的垂直轴的长度相同。考虑到这一事实,我倾向于说 gnuplot 实际上是宽高比错误的那个,考虑到您的目的是有一些类似于 matplotlib 调用的东西ax.set_aspect('equal', adjustable='box')。此外,surf具有warp_scale允许产生垂直夸张的关键字。文档在这里

于 2019-05-02T05:41:40.880 回答