Шаг 173.
Язык Python. Визуализация данных. Библиотека Mayavi. Визуализация данных. Функции для работы с двумерными наборами данных. Функция mesh()

    На этом шаге мы рассмотрим назначение и примеры использования этой функции.

    Функция mesh() строит поверхность, по переданным 2D-массивам данных. Сигнатура функции имеет следующий вид:

   mesh(x, y, z, ...)
где x, y, z - это 2D-наборы данных, по которым будет построена поверхность. После них можно добавить параметры, указанные на 162 шаге, или из списка, представленного ниже (список не полный):
representation
Тип поверхности, может быть: 'surface', 'wireframe', 'points', 'mesh' или 'fancymesh'. Если выбран тип 'points', то можно использовать параметры для работы с глифами.

mode
Тип глифа.

scale_factor
Масштабный коэффициент.

    Создадим набор данных, задающий 3/4 поверхности тора:

u, v = np.mgrid[-np.pi:np.pi / 2:0.05, -np.pi:np.pi + 0.1:0.1]
x = np.cos(u) * (np.cos(v) + 3)
y = np.sin(u) * (np.cos(v) + 3)
z = np.sin(v)

    Построим поверхность с помощью функции mesh():

mlab.mesh(x, y, z)

mlab.show()

    Полный текст приложения:

import numpy as np
from mayavi import mlab

u, v = np.mgrid[-np.pi:np.pi / 2:0.05, -np.pi:np.pi + 0.1:0.1]
x = np.cos(u) * (np.cos(v) + 3)
y = np.sin(u) * (np.cos(v) + 3)
z = np.sin(v)

mlab.mesh(x, y, z)

mlab.show()
Архив с файлом можно взять здесь.


Рис.1. Демонстрация работы функции mesh()

    Изменим цветовую схему и тип поверхности на 'wireframe':

import numpy as np
from mayavi import mlab

u, v = np.mgrid[-np.pi:np.pi / 2:0.05, -np.pi:np.pi + 0.1:0.1]
x = np.cos(u) * (np.cos(v) + 3)
y = np.sin(u) * (np.cos(v) + 3)
z = np.sin(v)

mlab.mesh(x, y, z, colormap="spring", representation="wireframe")

mlab.show()
Архив с файлом можно взять здесь.


Рис.2. Демонстрация работы с параметром representation='wireframe' функции mesh()

    Вариант поверхности 'mesh':

import numpy as np
from mayavi import mlab

u, v = np.mgrid[-np.pi:np.pi / 2:0.05, -np.pi:np.pi + 0.1:0.1]
x = np.cos(u) * (np.cos(v) + 3)
y = np.sin(u) * (np.cos(v) + 3)
z = np.sin(v)

mlab.mesh(x, y, z, colormap="summer", representation="mesh")

mlab.show()
Архив с файлом можно взять здесь.


Рис.3. Демонстрация работы с параметром representation='mesh' функции mesh()

    На следующем шаге мы рассмотрим функции для работы с трехмерными наборами данных.




Предыдущий шаг Содержание Следующий шаг