最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

stackedplot

共通の x 軸をもつ複数の変数の積み上げプロット

説明

stackedplot(tbl) は積み上げプロットで table または timetable の変数をプロットします。この関数は変数を個別の y 軸にプロットし、垂直に積み上げます。変数は共通の x 軸を共有します。

  • tbl が table の場合、この関数は行番号に対して変数をプロットします。

  • tbl が timetable の場合、この関数は行番号に対して変数をプロットします。

関数 stackedplot は、tbl の数値変数、logical 変数、categorical 変数、datetime 変数、duration 変数をすべてプロットし、その他のデータ型をもつ table 変数を無視します。

stackedplot(tbl,vars)vars で指定される table 変数または timetable 変数のみをプロットします。

stackedplot(___,'XVariable',xvar) は積み上げプロットの x 値を指定する table 変数を指定します。この構文は table のみをサポートします。timetable はサポートしていません。

stackedplot(X,Y) はベクトル X に対して Y の列をプロットします。

stackedplot(Y) はそれらの行番号に対して Y の列をプロットします。x 軸のスケール範囲は、1 から Y の行数までです。

stackedplot(___,LineSpec) は、ライン スタイル、マーカー記号、色を設定します。この構文では、前述のいずれかの構文の入力引数を使用できます。

stackedplot(___,Name,Value) は 1 つ以上の Name,Value のペアの引数を使用して積み上げプロットのプロパティを設定します。プロパティの一覧については、StackedLineChart のプロパティ を参照してください。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。名前と値のペアの設定は、積み上げプロットですべてのプロットに適用されます。各プロパティ名を引用符で囲みます。

stackedplot(parent,___) は、parent で指定された Figure、パネルまたはタブに積み上げプロットを作成します。オプションの parent は、前述の構文のすべての入力引数の組み合わせより前に指定できます。

s = stackedplot(___)StackedLineChart オブジェクトを返します。s を使用して、積み上げプロットのプロパティを作成した後に変更できます。プロパティの一覧については、StackedLineChart のプロパティ を参照してください。

すべて折りたたむ

データをスプレッドシートから table に読み取ります。その後、table を timetable に変換します。日付と時刻が含まれる最初の変数 OutageTime は timetable の行時間を指定します。最初の 5 行を表示します。

tbl = readtable('outages.csv');
tbl = table2timetable(tbl);
head(tbl,5)
ans=5×5 timetable
       OutageTime          Region         Loss     Customers     RestorationTime            Cause       
    ________________    _____________    ______    __________    ________________    ___________________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'   }
    2003-01-23 00:49    {'SouthEast'}    530.14    2.1204e+05                 NaT    {'winter storm'   }
    2003-02-07 21:15    {'SouthEast'}     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'   }
    2004-04-06 05:44    {'West'     }    434.81    3.4037e+05    2004-04-06 06:10    {'equipment fault'}
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'   }

行時間が順番になるように timetable を並べ替えます。timetable の行時間を順番にする必要はありません。ただし、行時間をプロットの x 軸として使用する場合は、timetable がその行時間で並べ替えられていることを確認することをお勧めします。

tbl = sortrows(tbl);
head(tbl,5)
ans=5×5 timetable
       OutageTime          Region         Loss     Customers     RestorationTime          Cause      
    ________________    _____________    ______    __________    ________________    ________________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'}
    2002-03-05 17:53    {'MidWest'  }    96.563    2.8666e+05    2002-03-10 14:41    {'wind'        }
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'}
    2002-03-26 01:59    {'MidWest'  }    388.04    5.6422e+05    2002-03-28 19:55    {'winter storm'}
    2002-04-20 16:46    {'MidWest'  }     23141           NaN                 NaT    {'unknown'     }

tbl からのデータの積み上げプロットを作成します。行時間 OutageTimex 軸に沿った値を指定します。関数 stackedplot は変数 Loss、変数 Customers、および変数 RestorationTime からの値を、変数ごとの y 軸に沿ってプロットします。ただし、変数 Region と変数 Cause にはプロットできないデータが含まれているためプロットに含まれません。

stackedplot(tbl)

患者データから table を作成します。最初の 3 行を表示します。

tbl = readtable('patients.xls');
head(tbl,3)
ans=3×10 table
      LastName        Gender      Age              Location               Height    Weight    Smoker    Systolic    Diastolic    SelfAssessedHealthStatus
    ____________    __________    ___    _____________________________    ______    ______    ______    ________    _________    ________________________

    {'Smith'   }    {'Male'  }    38     {'County General Hospital'  }      71       176      true        124          93             {'Excellent'}      
    {'Johnson' }    {'Male'  }    43     {'VA Hospital'              }      69       163      false       109          77             {'Fair'     }      
    {'Williams'}    {'Female'}    38     {'St. Mary's Medical Center'}      64       131      false       125          83             {'Good'     }      

4 つの変数のみを table からプロットします。

stackedplot(tbl,{'Height','Weight','Systolic','Diastolic'})

timetable を作成し、最初の 3 行を表示します。

tbl = readtable('outages.csv');
tbl = table2timetable(tbl);
tbl = sortrows(tbl);
head(tbl,3)
ans=3×5 timetable
       OutageTime          Region         Loss     Customers     RestorationTime          Cause      
    ________________    _____________    ______    __________    ________________    ________________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'}
    2002-03-05 17:53    {'MidWest'  }    96.563    2.8666e+05    2002-03-10 14:41    {'wind'        }
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'}

table での順序と異なる順序で変数を指定して並べ替えます。たとえば、RestorationTime はプロット可能な timetable の最後の変数です。既定の設定では、stackedplot によってプロットの下部に配置されます。ただし、変数を並べ替えて RestorationTime を最上部に配置できます。

stackedplot(tbl,{'RestorationTime','Loss','Customers'})

変数を並べ替える方法は他にもあります。

  • 数値順に table で指定する。stackedplot(tbl,[4 2 3]);

  • StackedLineChart オブジェクトを返し、その DisplayVariables プロパティ内の値を並べ替える。s = stackedplot(tbl); s.DisplayVariables = {'RestorationTime','Loss','Customers'}

患者データのサブセットから、変数 Weight、変数 Systolic、および変数 Diastolic を使用して table を作成します。

load patients
tbl = table(Weight,Systolic,Diastolic);
head(tbl,3)
ans=3×3 table
    Weight    Systolic    Diastolic
    ______    ________    _________

     176        124          93    
     163        109          77    
     131        125          83    

積み上げプロットを同じ y 軸を使用してプロットされた Systolic および Diastolic で作成します。変数を一緒にプロットするには、それらを入れ子にされた cell 配列に指定します。

vars = {{'Systolic','Diastolic'},'Weight'}
vars=1×2 cell array
    {1x2 cell}    {'Weight'}

stackedplot(tbl,vars)

数値行列と数値ベクトルを作成します。

X = [0:4:20]
X = 1×6

     0     4     8    12    16    20

Y = randi(100,6,3)
Y = 6×3

    82    28    96
    91    55    49
    13    96    81
    92    97    15
    64    16    43
    10    98    92

XY を使用して積み上げプロットを作成します。

stackedplot(X,Y)

一連の気象測定値をもつ timetable を読み込みます。最初の 3 行を表示します。

load outdoors
outdoors(1:3,:)
ans=3×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:24        49          51.3          29.61   
    2015-11-15 01:30:24      48.9          51.5          29.61   
    2015-11-15 03:00:24      48.9          51.5          29.61   

積み上げプロットを作成します。名前と値のペアの引数を使用して、y 軸のタイトルとラベルを指定します。名前と値のペアを使用して、任意のプロパティをその既定値から変更します (char(176) を使用して度記号を指定できる点にも注意してください)。

degreeSymbol = char(176);
newYlabels = {'RH (%)',['T (' degreeSymbol 'F)'],'P (in Hg)'};
stackedplot(outdoors,'Title','Weather Data','DisplayLabels',newYlabels)

関数 StackedLineChartstackedplot オブジェクトを返します。これを使用して、すべてのプロットに同じプロパティ値を設定することも、個々のプロットに異なるプロパティ値を設定することもできます。この例では、積み上げプロットのすべてのプロットのライン幅を最初に変更します。次に、個々のプロットの PlotType プロパティを使用して、積み上げプロットにライン プロット、散布図、階段状プロットが含まれるようにします。

一連の気象測定値をもつ timetable を読み込みます。

load outdoors
outdoors(1:3,:)
ans=3×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:24        49          51.3          29.61   
    2015-11-15 01:30:24      48.9          51.5          29.61   
    2015-11-15 03:00:24      48.9          51.5          29.61   

積み上げプロットを作成し、StackedLineChart オブジェクトを返します。

s = stackedplot(outdoors)

s = 
  StackedLineChart with properties:

         SourceTable: [51x3 timetable]
    DisplayVariables: {'Humidity'  'TemperatureF'  'PressureHg'}
               Color: [0 0.4470 0.7410]
           LineStyle: '-'
           LineWidth: 0.5000
              Marker: 'none'
          MarkerSize: 6

  Show all properties

このオブジェクトは、すべてのプロットに適用される多数のプロパティへのアクセスを提供します。たとえば、s.LineWidth を使用してラインを太くすることができます。

s.LineWidth = 2;

このオブジェクトは、個々のプロットのラインおよび y 軸を変更するために使用できるオブジェクトの配列へのアクセスも提供します。個々のラインのプロパティにアクセスするには、s.LineProperties を使用します。各プロットに対して、異なるライン スタイル、マーカー、プロット タイプなどを指定できます。

s.LineProperties
ans=3×1 object
  3x1 StackedLineProperties array with properties:

    Color
    MarkerFaceColor
    MarkerEdgeColor
    LineStyle
    LineWidth
    Marker
    MarkerSize
    PlotType

PlotType プロパティを使用して、2 番目のプロットを散布図に、3 番目のプロットを階段状プロットに変更します。

s.LineProperties(2).PlotType = 'scatter';
s.LineProperties(3).PlotType = 'stairs';

s.AxesProperties プロパティを使用して、個々の y 軸にアクセスすることもできます。

s.AxesProperties
ans=3×1 object
  3x1 StackedAxesProperties array with properties:

    YLimits
    LegendLabels
    LegendLocation
    LegendVisible

入力引数

すべて折りたたむ

入力 table または timetable。

入力 table の変数。文字ベクトルの cell 配列、string 配列、数値配列、または logical 配列として指定します。

vars が cell 配列の場合は、入れ子にされた cell 配列にすることもできます。関数 stackedplot は、同じ y 軸内の入れ子にされた cell で指定されたすべての変数をプロットします。

X 値を含む table 変数。文字ベクトル、string スカラー、整数、または logical 配列として指定します。

入力引数 tbl が timetable ではなく table の場合にのみ、xvar を指定できます。

x 値。数値、datetime、duration、または logical ベクトルとして指定します。X の行数は、Y の行数と等しくなければなりません。

y 値。数値、datetime、duration、categorical、または logical 配列として指定します。関数 stackedplot は個別の y 軸で各列をプロットします。

ライン スタイル、マーカー、色。記号を含む文字ベクトルまたは string スカラーとして指定します。記号の順番は任意です。3 つの特性 (ライン スタイル、マーカーおよび色) をすべて指定する必要はありません。たとえば、ライン スタイルを省略してマーカーを指定する場合、プロットはラインなしでマーカーのみを表示します。

例: '--or' は丸いマーカーをもった赤い破線

ライン スタイル説明
-実線 (既定の設定)
--破線
:点線
-.一点鎖線
マーカー説明
o
+プラス記号
*アスタリスク
.
x十字
s正方形
d菱形
^上向き三角形
v下向き三角形
>右向き三角形
<左向き三角形
p星形五角形
h星形六角形
説明

y

m

マゼンタ

c

シアン

r

g

b

w

k

親コンテナー。FigurePanelTab または TiledChartLayout オブジェクトとして指定します。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'Marker','o','MarkerSize',10

ここにリストされている積み上げチャート ラインのプロパティは、データ ソースが table か配列かにかかわらず、すべての積み上げプロットに共通のサブセットのみです。完全な一覧については、StackedLineChart のプロパティ を参照してください。

ラインの色。RGB 3 成分、16 進数カラー コード、または 1 番目の表にリストされている色のオプションのいずれかとして指定します。

カスタム色を使用する場合は、RGB 3 成分または 16 進数カラー コードを指定します。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。これらの値では大文字小文字は区別されません。したがって、カラー コード '#FF8800''#ff8800''#F80'、および '#f80' は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'該当なし該当なし該当なし色なし

MATLAB® の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

例: 'blue'

例: [0 0 1]

例: '#0000FF'

ライン スタイル。次の表にリストされたオプションのいずれかとして指定します。

ライン スタイル説明結果として得られる線
'-'実線

'--'破線

':'点線

'-.'一点鎖線

'none'ラインなしラインなし

ライン幅。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。ラインがマーカーをもつ場合、ライン幅はマーカー エッジにも影響します。

ライン幅をピクセルの幅より細くすることはできません。システムでライン幅をピクセルの幅より細い値に設定すると、ラインは 1 ピクセル幅で表示されます。

マーカー記号。次の表のマーカーのいずれかとして指定します。既定では、積み上げチャート ラインにマーカーはありません。マーカー記号を指定することで、ライン上の各データ点にマーカーが追加されます。

説明
'o'
'+'プラス記号
'*'アスタリスク
'.'
'x'十字
'square' または 's'正方形
'diamond' または 'd'菱形
'^'上向き三角形
'v'下向き三角形
'>'右向き三角形
'<'左向き三角形
'pentagram' または 'p'星形五角形
'hexagram' または 'h'星形六角形
'none'マーカーなし

例: 'Marker','+'

例: 'Marker','diamond'

マーカー サイズ。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。

ヒント

  • 積み上げプロットでデータを対話的に調べるには、以下の機能を使用します。

    • ズーム — スクロール ホイールを使用してズームする。

    • パン — 積み上げプロットをクリックしてドラッグし、複数の x 値の上を動かす。

    • データ カーソル — 場所の上にカーソルを合わせて、各プロットの y 値を表示する。

R2018b で導入