Этот пример показывает несколько методов, чтобы визуализировать четырехмерные (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 матрицей графиков видеть попарные отношения между переменными. Функция plotmatrix
возвращает два выходных параметра. Первый вывод является матрицей объектов линии, используемых в графиках рассеивания. Второй является матрица объектов осей, которые создаются.
Функция 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)';