このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
4 次元データの可視化
この例では、MATLAB® で 4 次元データを可視化する手法をいくつか示します。
1 つの離散変数による 4 次元データの可視化
データが、いくつかの離散値しかとらない変数をもつ場合があります。各離散グループのデータに対し、同じタイプの複数のプロットを作成できます。たとえば、関数 stem3
を使用して、4 番目の変数により母集団が離散グループに分割される場合の、3 つの変数の関係を確認します。
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')
複数のプロットでの 4 次元データの可視化
大きなデータセットを使用して、個々の変数に相関関係があるかどうかを確認できます。関数 plotmatrix
を使用して、プロットの n 行 n 列の行列を作成し、変数間のペアごとの関係を表示できます。関数 plotmatrix
は 2 つの出力を返します。最初の出力は、散布図で使用される line オブジェクトの行列です。2 番目の出力は、作成された axes オブジェクトの行列です。
関数 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
3 変数の関数の可視化
各種 4 次元データでは、色を使用して 4 番目の次元を表すことができます。これは、3 変数の関数に対してうまく機能します。
たとえば、米国におけるハイウェイでの死亡事故件数を、経度と緯度、およびその場所が地方か都会かの関数として表します。プロットの x、y、z の値は、これら 3 つの変数を表します。色は、ハイウェイでの死亡事故の件数を表します。
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';
複素変数の関数のプロット
複素関数には、実数部と虚数部をもつ入力と、実数部と虚数部をもつ出力があります。色を伴う 3 次元プロットを使用して、複素関数を表すことができます。この場合、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)';