Неправильное соотношение сторон изображения поверхности питона Mayavi - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь научить майави строить 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()

график выглядит как

enter image description here

, а график с использованием gnuplot выглядит так

enter image description here

Итак, изображение майави не имеет правильного соотношения сторон.Как правильно отобразить данные с помощью Mayavi?

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Вы можете решить эту проблему, используя параметр 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()
0 голосов
/ 02 мая 2019

Горизонтальная плоскость, сгенерированная gnuplot, создает ось, охватывающую диапазон 0-90, которая по меньшей мере имеет ту же длину, что и перпендикулярная ось, которая охватывает диапазон 0-400. Учитывая этот факт, я бы сказал, что gnuplot на самом деле является тем, для которого соотношение сторон является неправильным, учитывая, что ваша цель - сделать что-то похожее на вызов matplotlib ax.set_aspect('equal', adjustable='box'). Кроме того, surf имеет ключевое слово warp_scale, которое позволяет создавать вертикальное преувеличение. Документация здесь .

...