contourslice

Нарисуйте контуры в плоскостях разбиения объема

Описание

пример

contourslice(X,Y,Z,V,xslice,yslice,zslice) рисует контуры в срезах для объемных данных V, где V определяет цвета контуров. Задайте X, Y, и Z как координатные данные. Задайте xslice, yslice, и zslice в качестве расположения срезов, использующих одну из следующих форм:

  • Чтобы нарисовать одну или несколько плоскости разбиения, ортогональных определенной оси, задайте аргументы среза как скаляр или вектор.

  • Чтобы нарисовать один срез вдоль поверхности, задайте все аргументы срез матриц, которые определяют поверхность.

contourslice(V,xslice,yslice,zslice) использует данные координат по умолчанию для V. Расположение (x, y, z) для каждого элемента в V основан на столбце, строке и индексе страницы, соответственно.

пример

contourslice(___,num) задает количество контурных линий для рисования по срезам. Используйте эту опцию с любыми входными параметрами из предыдущих синтаксисов.

contourslice(___,lvls) задает значения для рисования контурных линий внутри каждого среза.

contourslice(___,method) задает метод интерполяции, где method можно 'linear', 'cubic', или 'nearest'.

contourslice(ax,___) графики в заданные оси, вместо текущих систем координат (gca).

s = contourslice(___) возвращает Patch созданные объекты.

Примеры

свернуть все

Создайте одну плоскость разбиения через объемные данные и нарисуйте контуры значений данных.

Создайте матрицы X, Y, Z, и V от flow набор данных. Нарисуйте контуры V в плоскости разбиения, где z = 0.

[X,Y,Z,V] = flow;
zslice = 0;
contourslice(X,Y,Z,V,[],[],zslice)
grid on

Figure contains an axes. The axes contains 41 objects of type patch.

Создайте несколько плоскости разбиения с помощью объемных данных. Нарисуйте контуры значений данных в каждой из плоскостей разбиения. Пусть MATLAB выбирает уровни контура.

Создание V как массив объемных данных, заданный как v=xe-x2-y2-z2. Нарисуйте контуры в трёх плоскостях разбиения, которые ортогональны оси X при значениях -1.2, 0.8, и 2. Не создавайте плоскостей разбиения, которые ортогональны оси Y или оси Z, задавая пустые массивы. Измените вид осей на вид 3-D и добавьте линии сетки.

[X,Y,Z] = meshgrid(-2:.2:2);
V = X.*exp(-X.^2-Y.^2-Z.^2);

xslice = [-1.2,0.8,2];   
yslice = [];
zslice = [];
contourslice(X,Y,Z,V,xslice,yslice,zslice)
view(3)
grid on

Figure contains an axes. The axes contains 20 objects of type patch.

Создайте несколько плоскости разбиения с помощью объемных данных. Нарисуйте контуры значений данных в каждой из плоскостей разбиения. Укажите уровни, на которых необходимо рисовать контуры. Затем добавьте шкалу палитры.

Нарисуйте контуры в трёх плоскостях разбиения, которые ортогональны оси X при значениях -1.2, 0.8, и 2. Нарисуйте контуры для объемных данных между значениями -0.2 и 0.4, с интервалом между 0.01. Добавьте шкалу палитры, чтобы увидеть, как значения данных сопоставлены с цветами контуров. Также измените вид осей на 3-D вид и добавьте линии сетки.

[X,Y,Z] = meshgrid(-2:.2:2);
V = X.*exp(-X.^2-Y.^2-Z.^2);
xslice = [-1.2,0.8,2];   
lvls = -0.2:0.01:0.4;

contourslice(X,Y,Z,V,xslice,[],[],lvls)
colorbar
view(3)
grid on

Figure contains an axes. The axes contains 63 objects of type patch.

Создайте срез поверхности с помощью объемных данных и нарисуйте контуры вдоль поверхности объемных данных. Задайте количество уровней контура для рисования.

Создание V как массив объемных данных, заданный как v=xe-x2-y2-z2. Затем покажите срез объемных данных вдоль поверхности, заданной как z=x2-y2. Нарисуйте 20 контуров по поверхности. Измените вид осей на вид 3-D и добавьте линии сетки.

[X,Y,Z] = meshgrid(-5:0.2:5);
V = X.*exp(-X.^2-Y.^2-Z.^2);

[xsurf,ysurf] = meshgrid(-2:0.2:2);
zsurf = xsurf.^2-ysurf.^2;
contourslice(X,Y,Z,V,xsurf,ysurf,zsurf,20)
view(3)
grid on

Figure contains an axes. The axes contains 20 objects of type patch.

Входные параметры

свернуть все

x -данные координат оси, заданные как вектор или трехмерный массив того же размера, что и V. Если вы задаете трехмерный массив, он должен быть монотонным и ортогонально разделенным, как если бы он был произведен meshgrid функция.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y -данные координат оси, заданные как вектор или трехмерный массив того же размера, что и V. Если вы задаете трехмерный массив, он должен быть монотонным и ортогонально разделенным, как если бы он был произведен meshgrid функция.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

z -данные координат оси, заданные как вектор или трехмерный массив того же размера, что и V. Если вы задаете трехмерный массив, он должен быть монотонным и ортогонально разделенным, как если бы он был произведен meshgrid функция.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Объемные данные, заданные как трехмерный массив.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

x -ось значения среза, заданные в одной из следующих форм:

  • Скаляр - нарисуйте одну плоскость разбиения, ортогональную оси x в заданном месте.

  • Вектор - нарисуйте несколько плоскости разбиения ортогонально оси x в заданных местоположениях.

  • [] - Не рисуйте плоскостей разбиения.

  • Матрица - нарисуйте срез вдоль поверхности вместо плоскости. Если вы используете эту опцию, то yslice и zslice также должны быть матрицами одинакового размера.

Пример: [2 4] рисует плоскости разбиения, ортогональные оси X, со значениями 2 и 4.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y -ось значения среза, заданные в одной из следующих форм:

  • Скаляр - нарисуйте одну плоскость разбиения, ортогональную оси y в заданном месте.

  • Вектор - нарисуйте несколько плоскости разбиения ортогонально оси y в заданных местоположениях.

  • [] - Не рисуйте плоскостей разбиения.

  • Матрица - нарисуйте срез вдоль поверхности вместо плоскости. Если вы используете эту опцию, то xslice и zslice также должны быть матрицами одинакового размера.

Пример: [2 4] рисует плоскости разбиения, ортогональные оси Y, со значениями 2 и 4.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

z -ось значения среза, заданные в одной из следующих форм:

  • Скаляр - нарисуйте одну плоскость разбиения, ортогональную оси z в заданном месте.

  • Вектор - нарисуйте несколько плоскости разбиения ортогонально оси z в заданных местоположениях.

  • [] - Не рисуйте плоскостей разбиения.

  • Матрица - нарисуйте срез вдоль поверхности вместо плоскости. Если вы используете эту опцию, то xslice и yslice также должны быть матрицами одинакового размера.

Пример: [2 4] рисует плоскости разбиения, ортогональные оси Z, со значениями 2 и 4.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Количество контурных линий на срез, заданное как скаляр.

Пример: 4 рисует четыре линии контура внутри каждого среза.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Уровни контурных линий, заданные как вектор. Если необходимо нарисовать одну контурную линию для каждого среза на конкретном уровне, задайте вектор в форме [lvl lvl].

Пример: [1 3 5] рисует контурные линии на уровнях 1, 3 и 5 внутри каждого среза.

Пример: [4 4] рисует одну контурную линию на уровне 4 внутри каждого среза.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Метод интерполяции, заданный в качестве одного из следующих значений:

  • 'linear' - Линейная интерполяция значений в соседних точках сетки в каждой соответствующей размерности. Это значение является значением по умолчанию, когда срез является поверхностью.

  • 'cubic' - кубическая интерполяция значений в соседних точках сетки в каждой соответствующей размерности.

  • 'nearest' - Ближайшее значение точки сетки. Это значение является значением по умолчанию, когда срезы являются плоскостями.

Целевые оси, заданные как Axes объект. Если вы не задаете оси, то contourslice графики в текущей системе координат.

Алгоритмы

contourslice функция не очищает существующие графики перед графическим изображением.

Расширенные возможности

См. также

| | | |

Представлено до R2006a