Main Content

stackedplot

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

  • Stacked plot of several variables with common x-axis

説明

stackedplot(tbl) は積み上げプロットで table または timetable の変数を、最大 25 個の変数までプロットします。この関数は変数を個別の 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 に対して、最大 25 列まで 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 のプロパティ を参照してください。

すべて折りたたむ

データをスプレッドシートから timetable に読み取ります (含まれているすべてのテキスト データを string 配列に読み取ります)。日付と時刻が含まれる最初の変数 OutageTime は timetable の行時間を指定します。最初の 5 行を表示します。

tbl = readtimetable("outages.csv","TextType","string");
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)

Figure contains an object of type stackedplot.

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

tbl = readtable("patients.xls","TextType","string");
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"])

Figure contains an object of type stackedplot.

ファイルから timetable を読み取り、最初の 3 行を表示します。

tbl = readtimetable("outages.csv","TextType","string");
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"])

Figure contains an object of type stackedplot.

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

  • 数値順に 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 と、独自の "y" 軸を使用してプロットされた Weight で作成します。まず、vars を 2 つの要素をもつ cell 配列として指定します。最初の要素は、"Systolic" および "Diastolic" を string 配列にグループ化します。これらは共通の "y" 軸上にまとめてプロットされます。cell 配列の 2 番目の要素は "Weight" です。独自の "y" 軸上にプロットされます。

vars = {["Systolic","Diastolic"],"Weight"}
vars=1×2 cell array
    {["Systolic"    "Diastolic"]}    {["Weight"]}

stackedplot(tbl,vars)

Figure contains an object of type stackedplot.

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

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)

Figure contains an object of type stackedplot.

一連の気象測定値をもつ 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)

Figure contains an object of type stackedplot. The chart of type stackedplot has title Weather Data.

関数 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)

Figure contains an object of type stackedplot.

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;

Figure contains an object of type stackedplot.

このオブジェクトは、個々のプロットのラインおよび 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";

Figure contains an object of type stackedplot.

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

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

    YLimits
    YScale
    LegendLabels
    LegendLocation
    LegendVisible

たとえば、最初のプロットの "y" 軸範囲を変更します。

s.AxesProperties(1).YLimits = [46 54];

Figure contains an object of type stackedplot.

データを timetable にインポートします。次に、積み上げプロットを作成します。既定では、すべてのプロットの "x" 軸と "y" 軸でどちらも線形スケールが使用されます。

tbl = readtimetable("outages.csv");
tbl = sortrows(tbl);
s = stackedplot(tbl)

Figure contains an object of type stackedplot.

s = 
  StackedLineChart with properties:

         SourceTable: [1468x5 timetable]
    DisplayVariables: {'Loss'  'Customers'  'RestorationTime'}
               Color: [0 0.4470 0.7410]
           LineStyle: '-'
           LineWidth: 0.5000
              Marker: 'none'
          MarkerSize: 6

  Show all properties

s.AxesProperties プロパティを使用して、個々の "y" 軸のプロパティ (それらのスケールなど) にアクセスできます。

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

    YLimits
    YScale
    LegendLabels
    LegendLocation
    LegendVisible

最初と 2 番目のプロットを、"y" 軸で対数スケールを使用する片対数プロットに変更するには、YScale プロパティを 'log' に設定します。

s.AxesProperties(1).YScale = 'log';
s.AxesProperties(2).YScale = 'log';

Figure contains an object of type stackedplot.

入力引数

すべて折りたたむ

入力 table または timetable。

入力 table の変数。string 配列、数値配列、logical 配列、または cell 配列として指定します。

vars が cell 配列の場合は、文字ベクトルの cell 配列 (各文字ベクトルが 1 つの変数名を指定する)、または入れ子にされた cell 配列 (cell 配列の各要素が複数の変数をグループ化する配列である) にすることができます。たとえば、vars = {'A','B','C'} である場合、変数 AB および C はそれぞれ独自の "y" 軸上にプロットされます。ただし、vars = {["A","B"],"C"} である場合、A および B は 1 つの "y" 軸上にまとめてプロットされ、C は 2 番目の y 軸上にプロットされます。

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

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

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

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

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

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

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

Sample of solid line

'--'破線

Sample of dashed line

':'点線

Sample of dotted line

'-.'一点鎖線

Sample of dash-dotted line, with alternating dashes and dots

マーカー説明結果のマーカー
'o'

Sample of circle marker

'+'プラス記号

Sample of plus sign marker

'*'アスタリスク

Sample of asterisk marker

'.'

Sample of point marker

'x'十字

Sample of cross marker

'_'水平線

Sample of horizontal line marker

'|'垂直線

Sample of vertical line marker

's'正方形

Sample of square marker

'd'菱形

Sample of diamond line marker

'^'上向き三角形

Sample of upward-pointing triangle marker

'v'下向き三角形

Sample of downward-pointing triangle marker

'>'右向き三角形

Sample of right-pointing triangle marker

'<'左向き三角形

Sample of left-pointing triangle marker

'p'星形五角形

Sample of pentagram marker

'h'星形六角形

Sample of hexagram marker

色名省略名RGB 3 成分外観
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

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

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: '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'

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

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

Sample of the color black

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

Sample of the color white

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

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

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

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

例: 'blue'

例: [0 0 1]

例: '#0000FF'

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

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

Sample of solid line

'--'破線

Sample of dashed line

':'点線

Sample of dotted line

'-.'一点鎖線

Sample of dash-dotted line, with alternating dashes and dots

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

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

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

マーカー記号。次の表に挙げる値のいずれかとして指定します。既定では、オブジェクトはマーカーを表示しません。マーカー記号を指定すると、各データ点または各頂点にマーカーが追加されます。

マーカー説明結果のマーカー
'o'

Sample of circle marker

'+'プラス記号

Sample of plus sign marker

'*'アスタリスク

Sample of asterisk marker

'.'

Sample of point marker

'x'十字

Sample of cross marker

'_'水平線

Sample of horizontal line marker

'|'垂直線

Sample of vertical line marker

's'正方形

Sample of square marker

'd'菱形

Sample of diamond line marker

'^'上向き三角形

Sample of upward-pointing triangle marker

'v'下向き三角形

Sample of downward-pointing triangle marker

'>'右向き三角形

Sample of right-pointing triangle marker

'<'左向き三角形

Sample of left-pointing triangle marker

'p'星形五角形

Sample of pentagram marker

'h'星形六角形

Sample of hexagram marker

'none'マーカーなし該当なし

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

出力引数

すべて折りたたむ

スタンドアロンの可視化である StackedLineChart オブジェクト。s を使用して、積み上げプロットの作成後にそのプロパティを設定します。

詳細

すべて折りたたむ

スタンドアロンの可視化

スタンドアロンの可視化は、他のチャートから独立して機能する特別な目的のために設計されたチャートです。plot および surf のような他のチャートとは異なり、スタンドアロンの可視化には事前構成済みの axes オブジェクトが組み込まれています。一部のカスタマイズは使用できません。スタンドアロンの可視化には次のような特徴もあります。

  • ライン、パッチ、または表面といった他のグラフィックス要素と組み合わせることはできません。したがって、hold コマンドはサポートされません。

  • 関数 gca はチャート オブジェクトを現在の座標軸として返すことができます。

  • axes オブジェクトを入力引数として受け入れる多くの MATLAB 関数にチャート オブジェクトを渡すことができます。たとえば、チャート オブジェクトを関数 title に渡すことができます。

ヒント

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

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

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

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

バージョン履歴

R2018b で導入

すべて展開する

R2022a での動作変更