Плоскость разбиения (который не должен быть плоским) является поверхностью, которая берет окраску на основе значений данных об объеме в области, где срез расположен. Плоскости разбиения полезны для зондирования наборов данных объема, чтобы обнаружить, где интересные области существуют, который можно затем визуализировать с другими типами графиков (см. пример slice
). Плоскости разбиения также полезны для добавления визуального контекста к связанному из объема, когда другие методы построения графика также используются (см. coneplot
и Графики Линии потоков Векторных Данных для примеров).
Используйте функцию slice
, чтобы создать плоскости разбиения. Этот пример срезы через объем сгенерирован flow
.
Сгенерируйте данные об объеме с командой:
[x,y,z,v] = flow;
Определите область значений объема путем нахождения минимума и максимума координатных данных.
xmin = min(x(:)); ymin = min(y(:)); zmin = min(z(:)); xmax = max(x(:)); ymax = max(y(:)); zmax = max(z(:));
Чтобы создать плоскость разбиения, которая не лежит в плоскости осей, сначала задайте поверхность и вращайте ее к желаемой ориентации. Этот пример использует поверхность, которая имеет тот же x-и y-координаты как объем.
hslice = surf(linspace(xmin,xmax,100),... linspace(ymin,ymax,100),... zeros(100));
Вращайте поверхность-45 градусами об оси X и сохраните поверхностный XData
, YData
и ZData
, чтобы задать плоскость разбиения; затем удалите поверхность.
rotate(hslice,[-1,0,0],-45) xd = get(hslice,'XData'); yd = get(hslice,'YData'); zd = get(hslice,'ZData');
delete(hslice)
Чертите вращаемую плоскость разбиения, устанавливая FaceColor
на interp
так, чтобы это было окрашено палитрой фигуры и установило EdgeColor
на none
. Увеличьте DiffuseStrength
до .8
, чтобы сделать это плоское сияние более ярко после добавления источника света.
figure colormap(jet) h = slice(x,y,z,v,xd,yd,zd); h.FaceColor = 'interp'; h.EdgeColor = 'none'; h.DiffuseStrength = 0.8;
Установите hold
на on
и добавьте еще три ортогональных плоскости разбиения в xmax
, ymax
и zmin
, чтобы обеспечить контекст для первой плоскости, который срезы через объем под углом.
hold on hx = slice(x,y,z,v,xmax,[],[]); hx.FaceColor = 'interp'; hx.EdgeColor = 'none'; hy = slice(x,y,z,v,[],ymax,[]); hy.FaceColor = 'interp'; hy.EdgeColor = 'none'; hz = slice(x,y,z,v,[],[],zmin); hz.FaceColor = 'interp'; hz.EdgeColor = 'none';
Чтобы отобразить объем в правильных пропорциях, установите соотношение сторон данных на [1,1,1]
(daspect
). Настройте ось, чтобы соответствовать плотно вокруг объема (axis
). Ориентация осей может быть выбрана первоначально с помощью rotate3d
, чтобы определить лучший view
.
Увеличивание масштаб сцены обеспечивает большее представление объема (camzoom
). Выбор типа проекции perspective
дает прямоугольные твердые более естественные пропорции, чем ортогональная проекция по умолчанию (camproj
).
daspect([1,1,1]) axis tight view(-38.5,16) camzoom(1.4) camproj perspective
Добавление света к сцене делает контуры между этими четырьмя плоскостями разбиения более очевидными, потому что каждая плоскость формирует различный угол с источником света (lightangle
). Выбор палитры только с 24 цветами (значение по умолчанию равняется 64) создает видимые градации, что справка указывает на изменение в объеме.
lightangle(-45,45) colormap (jet(24))
Измените Цветное Отображение, показывает, как изменить, как данные сопоставлены с цветом.
Текущая палитра определяет окраску плоскостей разбиения. Это позволяет вам изменить плоскость разбиения, окрашивающую:
Изменение палитры
Изменение отображения значения данных, чтобы окрасить
Предположим, например, вы интересуетесь значениями данных только между-5 и 2.5 и хотели бы использовать палитру, которая сопоставила нижние значения с красными и более высокие значения к блюзу (то есть, противоположность палитры jet
по умолчанию).
Инвертируйте палитру с помощью colormap
и flipud
:
colormap (flipud(jet(24)))
Настройте цветные пределы, чтобы подчеркнуть какую-то конкретную область значений данных интереса. Настройте цветные пределы, чтобы колебаться от-5 до 2,4832, чтобы сопоставить любое значение ниже, чем значение-5 (исходные данные колебались от-11.5417 до 2,4832) в тот же цвет. Для получения информации о цветном отображении смотрите, что caxis
функционирует.
caxis([-5,2.4832])
Добавьте цветную полосу, чтобы обеспечить ключ для отображения данных к цвету.
colorbar('horiz')