Main Content

tall 配列の可視化

大規模なデータ セットを可視化するには、画面上にプロットする点の数を減らすために何らかの方法でデータを集約、ビニング、またはサンプリングする必要があります。histogrampie などの一部の関数は、データをビン化してサイズを削減します。また、plotscatter などの他の関数は、より複雑なアプローチを使用して、重複するピクセルを画面上にプロットしないようにします。ピクセルのオーバーラップが解析に関連している問題では、関数 binscatter は密度パターンを効果的に可視化する方法も提供します。

tall 配列を可視化する際に gather を使用する "必要はありません"。tall 配列の可視化は MATLAB® によって即座に評価されて表示されます。現在、以下の表の関数およびメソッドを使用して tall 配列を可視化できます。

関数必要なツールボックスメモ
plot

これらの関数は反復してプロットし、読み取ったデータの増加に伴い順次プロットに追加します。更新中は、進行状況インジケーターにプロット済みデータの比率が表示されます。更新プロセス中は、プロットが完了するまでズームとパンがサポートされます。更新プロセスを停止するには、進行状況インジケーターの [一時停止] ボタンを押します。

scatter
binscatter
histogram 
histogram2 
heatmap 
pie

カテゴリカル データの可視化のみ。

binScatterPlot (Statistics and Machine Learning Toolbox) Statistics and Machine Learning Toolbox™

Figure には、イメージの明るさや色の詳細を制御するためのスライダーが含まれています。このスライダーは、Gamma イメージ補正パラメーターの値を調整します。

ksdensity (Statistics and Machine Learning Toolbox) Statistics and Machine Learning Toolbox

一変量データでは 100 個の点、二変量データでは 900 個の点で評価された、データの確率密度推定値を生成します。

datasample (Statistics and Machine Learning Toolbox) Statistics and Machine Learning Toolbox

datasample により、単純なインデックス付けと比較して、統計的に安定した方法で tall 配列のサブサンプルを抽出できます。データのサブセットがメモリに収まる程度に小さい場合は、直接 tall 配列をサポートしないプロット関数および近似関数をサブセットに対して使用できます。

tall 配列のプロットの例

この例では、tall 配列を可視化する方法をいくつか示します。

航空会社のフライト データの行を含む airlinesmall.csv データ セット用のデータストアを作成します。処理する table 変数のサブセットを選択して、欠損値のある列を削除します。

ds = tabularTextDatastore('airlinesmall.csv','TreatAsMissing','NA');
ds.SelectedVariableNames = {'Year','Month','ArrDelay','DepDelay','Origin','Dest'};
T = tall(ds);
T = rmmissing(T)
T =

  Mx6 tall table

    Year    Month    ArrDelay    DepDelay    Origin      Dest  
    ____    _____    ________    ________    _______    _______

    1987     10          8          12       {'LAX'}    {'SJC'}
    1987     10          8           1       {'SJC'}    {'BUR'}
    1987     10         21          20       {'SAN'}    {'SMF'}
    1987     10         13          12       {'BUR'}    {'SJC'}
    1987     10          4          -1       {'SMF'}    {'LAX'}
    1987     10         59          63       {'LAX'}    {'SJC'}
    1987     10          3          -2       {'SAN'}    {'SFO'}
    1987     10         11          -1       {'SEA'}    {'LAX'}
     :        :         :           :           :          :
     :        :         :           :           :          :

月別のフライトを示す円グラフ

数値型の変数 Month を、月の名前を反映した categorical 変数に変換します。次に、その年の各月のデータに含まれているフライト数を示す円グラフをプロットします。

T.Month = categorical(T.Month,1:12,{'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'})
T =

  Mx6 tall table

    Year    Month    ArrDelay    DepDelay    Origin      Dest  
    ____    _____    ________    ________    _______    _______

    1987     Oct         8          12       {'LAX'}    {'SJC'}
    1987     Oct         8           1       {'SJC'}    {'BUR'}
    1987     Oct        21          20       {'SAN'}    {'SMF'}
    1987     Oct        13          12       {'BUR'}    {'SJC'}
    1987     Oct         4          -1       {'SMF'}    {'LAX'}
    1987     Oct        59          63       {'LAX'}    {'SJC'}
    1987     Oct         3          -2       {'SAN'}    {'SFO'}
    1987     Oct        11          -1       {'SEA'}    {'LAX'}
     :        :         :           :           :          :
     :        :         :           :           :          :
pie(T.Month)
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 2: Completed in 0.72 sec
- Pass 2 of 2: Completed in 0.59 sec
Evaluation completed in 1.7 sec

Figure contains an axes object. The hidden axes object contains 24 objects of type patch, text. These objects represent Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.

遅延のヒストグラム

データ内の各フライトの到着遅延時間のヒストグラムをプロットします。データには長い裾があるため、名前と値のペア BinLimits を使用してプロット領域を制限します。

histogram(T.ArrDelay,'BinLimits',[-50 150])
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 2: Completed in 1.2 sec
- Pass 2 of 2: Completed in 0.58 sec
Evaluation completed in 2.1 sec

Figure contains an axes object. The axes object contains an object of type histogram.

遅延の散布図

到着と出発の遅延時間の散布図をプロットします。出発が遅れたフライトは到着も遅れる可能性が高いため、これらの変数の間には強い相関関係が予想されます。

tall 配列を扱う場合、関数 plotscatter、および binscatter は反復してデータをプロットし、追加のデータを読み取るたびに順次プロットに追加します。更新中は、プロットされたデータ量を示す進行状況インジケーターがプロットの上部に表示されます。更新中は、プロットが完了するまでズームとパンがサポートされます。

scatter(T.ArrDelay,T.DepDelay)
xlabel('Arrival Delay')
ylabel('Departure Delay')
xlim([-140 1000])
ylim([-140 1000])

Figure contains an axes object. The axes object with xlabel Arrival Delay, ylabel Departure Delay contains an object of type scatter.

進行状況バーには [一時停止/再開] ボタンも含まれます。十分なデータが表示された時点で、ボタンを使用してプロットの更新を早めに停止します。

トレンド ラインの近似

関数 polyfit および polyval を使用して、到着遅延時間と出発遅延時間のプロット上に線形トレンド ラインを重ね合わせて表示します。

hold on
p = polyfit(T.ArrDelay,T.DepDelay,1);
x = sort(T.ArrDelay,1);
yp = polyval(p,x);
plot(x,yp,'r-')
hold off

Figure contains an axes object. The axes object with xlabel Arrival Delay, ylabel Departure Delay contains 2 objects of type scatter, line.

密度の可視化

点の散布図はある程度役に立ちますが、点が過度にオーバーラップしているとプロットからの情報の解読が困難になる場合があります。その場合は、プロットの点の密度を可視化してトレンドを検出すると便利です。

関数 binscatter を使用して、到着遅延時間と出発遅延時間のプロットの点の密度を可視化します。

binscatter(T.ArrDelay,T.DepDelay,'XLimits',[-100 1000],'YLimits',[-100 1000])
xlim([-100 1000])
ylim([-100 1000])
xlabel('Arrival Delay')
ylabel('Departure Delay')

Figure contains an axes object. The axes object with xlabel Arrival Delay, ylabel Departure Delay contains an object of type binscatter.

座標軸の CLim プロパティを調整して、150 を超えるビンのすべての値が同じ色になるようにします。これにより、非常に大きな値をもついくつかのビンによってプロットが占められる事態を防ぐことができます。

ax = gca;
ax.CLim = [0 150];

Figure contains an axes object. The axes object with xlabel Arrival Delay, ylabel Departure Delay contains an object of type binscatter.

参考

| |

関連するトピック