tall 配列の可視化
大規模なデータ セットを可視化するには、画面上にプロットする点の数を減らすために何らかの方法でデータを集約、ビニング、またはサンプリングする必要があります。histogram
や pie
などの一部の関数は、データをビン化してサイズを削減します。また、plot
や scatter
などの他の関数は、より複雑なアプローチを使用して、重複するピクセルを画面上にプロットしないようにします。ピクセルのオーバーラップが解析に関連している問題では、関数 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 には、イメージの明るさや色の詳細を制御するためのスライダーが含まれています。このスライダーは、 |
ksdensity (Statistics and Machine Learning Toolbox) | Statistics and Machine Learning Toolbox | 一変量データでは 100 個の点、二変量データでは 900 個の点で評価された、データの確率密度推定値を生成します。 |
datasample (Statistics and Machine Learning Toolbox) | Statistics and Machine Learning Toolbox |
|
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
遅延のヒストグラム
データ内の各フライトの到着遅延時間のヒストグラムをプロットします。データには長い裾があるため、名前と値のペア 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
遅延の散布図
到着と出発の遅延時間の散布図をプロットします。出発が遅れたフライトは到着も遅れる可能性が高いため、これらの変数の間には強い相関関係が予想されます。
tall 配列を扱う場合、関数 plot
、scatter
、および binscatter
は反復してデータをプロットし、追加のデータを読み取るたびに順次プロットに追加します。更新中は、プロットされたデータ量を示す進行状況インジケーターがプロットの上部に表示されます。更新中は、プロットが完了するまでズームとパンがサポートされます。
scatter(T.ArrDelay,T.DepDelay) xlabel('Arrival Delay') ylabel('Departure Delay') xlim([-140 1000]) ylim([-140 1000])
進行状況バーには [一時停止/再開] ボタンも含まれます。十分なデータが表示された時点で、ボタンを使用してプロットの更新を早めに停止します。
トレンド ラインの近似
関数 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
密度の可視化
点の散布図はある程度役に立ちますが、点が過度にオーバーラップしているとプロットからの情報の解読が困難になる場合があります。その場合は、プロットの点の密度を可視化してトレンドを検出すると便利です。
関数 binscatter
を使用して、到着遅延時間と出発遅延時間のプロットの点の密度を可視化します。
binscatter(T.ArrDelay,T.DepDelay,'XLimits',[-100 1000],'YLimits',[-100 1000]) xlim([-100 1000]) ylim([-100 1000]) xlabel('Arrival Delay') ylabel('Departure Delay')
座標軸の CLim
プロパティを調整して、150 を超えるビンのすべての値が同じ色になるようにします。これにより、非常に大きな値をもついくつかのビンによってプロットが占められる事態を防ぐことができます。
ax = gca; ax.CLim = [0 150];