В этом примере показано несколько методов визуализации четырехмерных (4-D) данных в MATLAB ®.
Иногда данные имеют переменную, которая дискретна с несколькими возможными значениями. Можно создать несколько графиков одного типа для данных в каждой дискретной группе. Для примера используйте stem3
функция, чтобы увидеть связь между тремя переменными, где четвертая переменная делит население на дискретные группы.
load patients Smoker Age Weight Systolic % load data nsIdx = Smoker == 0; smIdx = Smoker == 1; figure stem3(Age(nsIdx), Weight(nsIdx), Systolic(nsIdx), 'Color', 'b') % stem plot for non-smokers hold on stem3(Age(smIdx), Weight(smIdx), Systolic(smIdx), 'Color', 'r') % stem plot for smokers hold off view(-60,15) zlim([100 140]) xlabel('Age') % add labels and a legend ylabel('Weight') zlabel('Systolic Blood Pressure') legend('Non-Smoker', 'Smoker', 'Location', 'NorthWest')
С большим набором данных вы, возможно, захотите увидеть, коррелируют ли отдельные переменные. Можно использовать plotmatrix
функция для создания n на n матрицы графиков, чтобы увидеть парные отношения между переменными. The plotmatrix
функция возвращает два выхода. Первый выход является матрицей объектов линий, используемых на графиках поля точек. Второй - это матрица созданных объектов осей.
The plotmatrix
функция может также использоваться для наборов данных более высокого порядка.
load patients Height Weight Diastolic Systolic % load data labels = {'Height' 'Weight' 'Diastolic' 'Systolic'}; data = [Height Weight Systolic Diastolic]; [h,ax] = plotmatrix(data); % create a 4 x 4 matrix of plots for i = 1:4 % label the plots xlabel(ax(4,i), labels{i}) ylabel(ax(i,1), labels{i}) end
Для многих видов четырехмерных данных можно использовать цвет, чтобы представлять четвертую размерность. Это хорошо работает, если у вас есть функция трех переменных.
Например, представьте смертность на шоссе в Соединенных Штатах как функцию долготы, широты и если место является сельским или городским. Значения x, y и z на графике представляют эти три переменные. Цвет представляет количество смертей на шоссе.
cla load accidents hwydata % load data long = -hwydata(:,2); % longitude data lat = hwydata(:,3); % latitude data rural = 100 - hwydata(:,17); % percent rural data fatalities = hwydata(:,11); % fatalities data scatter3(long,lat,rural,40,fatalities,'filled') % draw the scatter plot ax = gca; ax.XDir = 'reverse'; view(-31,14) xlabel('W. Longitude') ylabel('N. Latitude') zlabel('% Rural Population') cb = colorbar; % create and label the colorbar cb.Label.String = 'Fatalities per 100M vehicle-miles';
Ваши данные могут содержать измеренное значение для физического объекта, такого как температура в трубопроводе. В этом случае физические размерности могут быть представлены как объем с цветом, используемым для представления величины измерения. Для примера используйте slice
функция, чтобы показать значение измеренной переменной на сечениях в объеме.
load fluidtemp x y z temp % load data xslice = [5 9.9]; % define the cross sections to view yslice = 3; zslice = ([-3 0]); slice(x, y, z, temp, xslice, yslice, zslice) % display the slices ylim([-3 3]) view(-34,24) cb = colorbar; % create and label the colorbar cb.Label.String = 'Temperature, C';
Комплексная функция имеет вход с вещественной и мнимой частями и выход с действительной и мнимой частями. Можно использовать трехмерный график с цветом, чтобы представлять комплексную функцию. В этом случае оси X и Y представляют действительную и мнимую части входа. Ось z представляет действительную часть выхода, а цвет - мнимую часть выхода.
r = (0:0.025:1)'; % create a matrix of complex inputs theta = pi*(-1:0.05:1); z = r*exp(1i*theta); w = z.^3; % calculate the complex outputs surf(real(z),imag(z),real(w),imag(w)) % visualize the complex function using surf xlabel('Real(z)') ylabel('Imag(z)') zlabel('Real(w)') cb = colorbar; cb.Label.String = 'Imag(w)';