Плоскость разбиения (который не должен быть плоским) является поверхностью, которая берет окраску на основе значений данных об объеме в области, где срез расположен. Плоскости разбиения полезны для зондирования наборов данных объема, чтобы обнаружить, где интересные области существуют, который можно затем визуализировать с другими типами графиков (см. 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
сделать это плоское сияние более ярко после добавления источника света.
colormap(turbo) 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(turbo(24))
Измените Цветное Отображение, показывает, как изменить, как данные сопоставлены с цветом.
Текущая палитра определяет окраску плоскостей разбиения. Это позволяет вам изменить плоскость разбиения, окрашивающую:
Изменение палитры
Изменение отображения значения данных, чтобы окрасить
Предположим, например, вы интересуетесь значениями данных только между-5 и 2.5 и хотели бы использовать палитру, которая сопоставила нижние значения с красными и более высокие значения к блюзу (то есть, противоположность turbo
по умолчанию палитра.
Инвертируйте использование палитры colormap
и flipud
:
colormap(flipud(turbo(24)))
Настройте цветные пределы, чтобы подчеркнуть какую-то конкретную область значений данных интереса. Настройте цветные пределы, чтобы лежать в диапазоне от-5 до 2,4832, чтобы сопоставить любое значение ниже, чем значение-5 (исходные данные лежали в диапазоне от-11.5417 до 2,4832) в тот же цвет. Для получения информации о цветном отображении смотрите caxis
функция.
caxis([-5,2.4832])
Добавьте цветную полосу, чтобы обеспечить ключ для отображения данных к цвету.
colorbar('southoutside')