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

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

    Функция points3d() отображает в виде специальных изображений (глифов) точки, координаты которых передаются через аргументы x, у и z. В дополнение к перечисленным на 162 шаге для функции points3d() доступны следующие параметры:

х, у, z: numpy-массив, list
Координаты точек.

s: numpy-массив, list
Массив, размер которого должен совпадать с x, y, z. Содержит числа, характеризующие каждую точку. Может использоваться для управления цветом или размером глифов.

f: callabel
Функция f(x, у, z), которая возвращает характеристическое число для каждой точки исходного набора данных. Может использоваться для управления цветом или размером глифов.

mask_points
Определяет шаг извлечения данных из переданных наборов х, y, z. Используется для уменьшения количества отображаемых элементов при работе с большим набором данных.

mode
Задаёт стиль глифов: '2darrow', '2dcircle', '2dcross', '2ddash', '2ddiamond', '2dhooked_arrow', '2dsquare', '2dthick_arrow', '2dthick_cross', '2dtriangle', '2dvertex', 'arrow', 'axes', 'cone', 'cube', 'cylinder', 'point', 'sphere'.

resolution
Разрешение глифа.

    Рассмотрим на примерах работу с points3d(). Загрузим нужные библиотеки и создадим набор данных для экспериментов:

import numpy as np
from mayavi import mlab

t = np.linspace(0, 2 * np.pi, 15)
x = 3 * np.cos(t)
y = 3 * np.sin(t)
z = 0 * t
s = 2 * np.cos(t)

    Визуализируем набор данных в виде сфер в 3D-пространстве:

mlab.points3d(x, y, z)
mlab.show()

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

import numpy as np
from mayavi import mlab

t = np.linspace(0, 2 * np.pi, 15)
x = 3 * np.cos(t)
y = 3 * np.sin(t)
z = 0 * t
s = 2 * np.cos(t)

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


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

    Если передать массив s в качестве четвёртого параметра, то значения из него будут использоваться для определения цвета и размера глифов:

import numpy as np
from mayavi import mlab

t = np.linspace(0, 2 * np.pi, 15)
x = 3 * np.cos(t)
y = 3 * np.sin(t)
z = 0 * t
s = 2 * np.cos(t)

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


Рис.2. Демонстрация работы работы с параметром s функции points3d()

    Вместо s можно использовать f:

import numpy as np
from mayavi import mlab

t = np.linspace(0, 2 * np.pi, 15)
x = 3 * np.cos(t)
y = 3 * np.sin(t)
z = 0 * t

f_attr = lambda x, y, z: np.array([2 * np.random.rand() for _ in range(len(x))])

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


Рис.3. Демонстрация работы работы с параметром f функции points3d()

    На следующем шаге мы закончим изучение этого вопроса.




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