Main Content

stackedplot

공통된 x축을 갖는 여러 변수의 누적 플롯

  • Stacked plot of several variables with common x-axis

설명

테이블 및 타임테이블 데이터

stackedplot(tbl)은 누적 플롯에 테이블 또는 타임테이블의 변수를 최대 25개 변수까지 플로팅합니다. 이 함수는 변수들을 개별 y축에 플로팅해 세로로 쌓습니다. 이들 변수는 공통의 x축을 공유합니다.

  • tbl이 테이블인 경우 stackedplot은 행 번호에 대해 변수를 플로팅합니다.

  • tbl이 타임테이블인 경우 stackedplot은 행 시간값에 대해 변수를 플로팅합니다.

  • tbl이 이벤트 테이블이 연결되어 있는 타임테이블인 경우 stackedplot은 이벤트를 세로 선 또는 음영 처리된 영역으로도 플로팅합니다. (R2023b 이후)

stackedplot 함수는 tbl의 숫자형, 논리형, categorical형, duration형의 모든 변수를 플로팅하고 다른 데이터형을 갖는 테이블 변수는 무시합니다.

예제

stackedplot(tbl1,...,tblN)은 여러 테이블 또는 여러 타임테이블의 변수를 플로팅합니다. 입력값은 모두 테이블이거나 모두 타임테이블이어야 합니다. (R2022b 이후)

예제

stackedplot({tbl1,...,tblN})은 입력값을 요소가 모두 테이블이거나 모두 타임테이블인 셀형 배열로 지정합니다. 이 구문은 위의 구문과 동일합니다.

stackedplot(___,vars)vars로 지정된 테이블 또는 타임테이블 변수만 표시합니다.

예제

벡터 및 행렬 데이터

stackedplot(X,Y)는 벡터 X에 대해 Y의 열들을 최대 25개 열까지 플로팅합니다.

예제

stackedplot(Y)는 행 번호에 대해 Y의 열들을 플로팅합니다. x축 스케일의 범위는 1에서 Y의 행 개수까지입니다.

추가 옵션

stackedplot(___,LineSpec)은 선 스타일, 마커 기호, 색을 설정합니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수와 함께 사용할 수 있습니다.

stackedplot(___,"XVariable",xvar)은 누적 플롯의 x 값이 될 테이블 변수를 지정합니다.

이 구문은 입력값이 테이블일 때만 지원됩니다.

stackedplot(___,"CombineMatchingNames",false)는 이름은 동일하지만 각기 다른 입력값에서 가져온 변수를 각각 다른 y축에 플로팅합니다. CombineMatchingNames 이름-값 인수를 지정하지 않을 때의 디폴트 동작은 변수를 동일한 y축에 플로팅하는 것입니다.

이 구문은 입력값이 여러 테이블이거나 여러 타임테이블일 때만 지원됩니다.

예제

stackedplot(___,Name,Value)는 하나 이상의 이름-값 인수를 사용하여 누적 플롯의 속성을 설정합니다. 속성 목록은 StackedLineChart Properties를 참조하십시오. 이름-값 인수 설정은 누적 플롯의 모든 플롯에 적용됩니다.

예제

stackedplot(parent,___)parent로 지정된 Figure, 패널 또는 탭에 누적 플롯을 만듭니다. 옵션 parent는 위에 열거된 구문의 입력 인수 조합보다 먼저 나올 수 있습니다.

s = stackedplot(___)StackedLineChart Properties 객체를 반환합니다. 누적 플롯을 만든 후에 s를 사용하여 플롯의 속성을 변경할 수 있습니다. 출력값 s는 또한 다른 차트와 독립적으로 작동하는 독립형 시각화이기도 합니다.

예제

예제

모두 축소

스프레드시트 데이터를 타임테이블로 읽어 들입니다. (스프레드시트에 포함된 텍스트 데이터는 string형 배열로 읽어 들입니다.) 날짜와 시간을 포함하는 첫 번째 변수인 OutageTime은 타임테이블의 행 시간값을 제공합니다. 처음 5개 행을 표시합니다.

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

행 시간값이 정렬되도록 타임테이블을 정렬합니다. 타임테이블의 행 시간값을 순서대로 정렬할 필요는 없습니다. 그러나 행 시간값을 플롯의 x축으로 사용하는 경우 타임테이블을 행 시간값 순서로 정렬하는 것이 좋습니다.

tbl = sortrows(tbl);
head(tbl,5)
       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축을 따라 플로팅합니다. 그러나 RegionCause 변수는 플로팅할 수 없는 데이터를 포함하고 있으므로 플롯에 포함되지 않습니다.

stackedplot(tbl)

Figure contains an object of type stackedplot.

R2023b 이상

타임테이블에 연결된 이벤트 테이블의 이벤트를 플로팅합니다. 결과는 이벤트가 세로 선 또는 음영 처리된 영역으로 플로팅된 타임테이블 변수의 누적 플롯입니다. 이벤트 테이블에 대한 자세한 내용은 eventtable 항목을 참조하십시오.

먼저 샘플 MAT 파일에서 타임테이블과 이벤트 테이블을 가져옵니다. 타임테이블을 표시합니다. 이 타임테이블은 2022년 11월의 2주간에 걸친 기상 조건 목록을 포함합니다.

load weatherEvents.mat
weatherData
weatherData=15×2 timetable
       Time        Temperature    Humidity
    ___________    ___________    ________

    01-Nov-2022        36            45   
    02-Nov-2022        31            76   
    03-Nov-2022        37            43   
    04-Nov-2022        36            46   
    05-Nov-2022        38            72   
    06-Nov-2022        32            54   
    07-Nov-2022        35            50   
    08-Nov-2022        34            45   
    09-Nov-2022        32            72   
    10-Nov-2022        30            58   
    11-Nov-2022        39            54   
    12-Nov-2022        34            58   
    13-Nov-2022        31            73   
    14-Nov-2022        40            78   
    15-Nov-2022        34            66   

다음으로, 이벤트 테이블을 표시합니다. 이 이벤트 테이블은 2022년 11월에 발생한 폭풍과 그 지속 기간 목록을 포함합니다.

weatherEvents
weatherEvents = 4x3 eventtable
  Event Labels Variable: EventType
  Event Lengths Variable: EventLength

       Time        EventType    EventLength    Precipitation (mm)
    ___________    _________    ___________    __________________

    03-Nov-2022      Hail         1.2 hr              12.7       
    05-Nov-2022      Rain          36 hr             114.3       
    10-Nov-2022      Snow          18 hr              25.4       
    14-Nov-2022      Rain          20 hr             177.8       

그런 다음 이벤트 테이블을 타임테이블에 연결합니다. 이벤트 테이블이 타임테이블의 속성이 됩니다. 타임테이블을 표시하면 이벤트 레이블도 볼 수 있습니다.

weatherData.Properties.Events = weatherEvents
weatherData=15×2 timetable
               Time        Temperature    Humidity
            ___________    ___________    ________

            01-Nov-2022        36            45   
            02-Nov-2022        31            76   
    Hail    03-Nov-2022        37            43   
            04-Nov-2022        36            46   
    Rain    05-Nov-2022        38            72   
    Rain    06-Nov-2022        32            54   
            07-Nov-2022        35            50   
            08-Nov-2022        34            45   
            09-Nov-2022        32            72   
    Snow    10-Nov-2022        30            58   
            11-Nov-2022        39            54   
            12-Nov-2022        34            58   
            13-Nov-2022        31            73   
    Rain    14-Nov-2022        40            78   
            15-Nov-2022        34            66   

누적 플롯을 만듭니다. 음영 처리된 영역은 연결된 이벤트 테이블에 나열된 폭풍이 발생한 시점을 나타냅니다.

stackedplot(weatherData)

Figure contains an object of type stackedplot.

이벤트를 숨기려면 EventsVisible 이름-값 인수를 사용하십시오.

stackedplot(weatherData,EventsVisible="off")

Figure contains an object of type stackedplot.

샘플 MAT 파일 outdoorsindoors에서 2개의 타임테이블을 불러옵니다. 그런 다음 각 타임테이블의 처음 세 개의 행을 표시합니다.

load indoors.mat
load outdoors.mat
head(indoors,3)
           Time            Humidity    AirQuality
    ___________________    ________    __________

    2015-11-15 00:00:24       36           80    
    2015-11-15 01:13:35       36           80    
    2015-11-15 02:26:47       37           79    
head(outdoors,3)
           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   

indoorsoutdoors의 데이터의 누적 플롯을 만듭니다. 여러 테이블이나 여러 타임테이블로 누적 플롯을 만들면 다음과 같이 동작합니다.

  • 범례는 각 테이블이나 타임테이블에 해당하는 색을 표시합니다.

  • 이름은 동일하지만 각기 다른 테이블이나 타임테이블에서 가져온 변수들을 동일한 y축에 플로팅합니다. 예를 들어, stackedplot에 대한 다음 호출은 indoorsoutdoors에서 가져온 Humidity 변수를 동일한 y축에 플로팅합니다.

stackedplot(indoors,outdoors)

Figure contains an object of type stackedplot.

샘플 MAT 파일 outdoorsindoors에서 2개의 타임테이블을 불러옵니다. 타임테이블 둘 다 Humidity라는 변수가 있습니다. 이 두 개의 Humidity 변수로 누적 플롯을 만듭니다. 범례 색으로 어떤 변수가 어떤 타임테이블에서 가져온 것인지 볼 수 있습니다.

load indoors.mat
load outdoors.mat
head(indoors,5)
           Time            Humidity    AirQuality
    ___________________    ________    __________

    2015-11-15 00:00:24       36           80    
    2015-11-15 01:13:35       36           80    
    2015-11-15 02:26:47       37           79    
    2015-11-15 03:39:59       37           82    
    2015-11-15 04:53:11       36           80    
head(outdoors,5)
           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   
    2015-11-15 04:30:24      48.8          51.5          29.61   
    2015-11-15 06:00:24      48.7          51.5           29.6   
stackedplot(indoors,outdoors,"Humidity")

Figure contains an object of type stackedplot.

구문 stackedplot(indoors,outdoors,"Humidity")는 구문 stackedplot(indoors,outdoors,"Humidity","CombineMatchingNames",true)와 동일합니다. 기본적으로, 이름은 일치하지만 각기 다른 입력값에서 가져온 변수들을 동일한 y축에 플로팅합니다.

두 개의 Humidity 변수를 서로 다른 y 좌표축에 플로팅하려면 "CombineMatchingNames",false 이름-값 인수를 지정하십시오.

stackedplot(indoors,outdoors,"Humidity","CombineMatchingNames",false)

Figure contains an object of type stackedplot.

환자 데이터에서 테이블을 만듭니다. 처음 세 개의 행을 표시합니다.

tbl = readtable("patients.xls","TextType","string");
head(tbl,3)
     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개의 변수만 플로팅합니다.

stackedplot(tbl,["Height","Weight","Systolic","Diastolic"])

Figure contains an object of type stackedplot.

파일에서 타임테이블을 읽어 들이고 처음 3개 행을 표시합니다.

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

테이블과는 다른 순서로 변수를 지정하여 다시 정렬합니다. 예를 들어, RestorationTime은 타임테이블에서 플로팅할 수 있는 마지막 변수입니다. 기본적으로 stackedplot은 플롯의 맨 아래에 이 변수를 배치합니다. 그러나 RestorationTime이 맨 위에 오도록 변수를 다시 정렬할 수 있습니다.

stackedplot(tbl,["RestorationTime","Loss","Customers"])

Figure contains an object of type stackedplot.

다른 방법으로 변수를 다시 정렬할 수도 있습니다.

  • 테이블에서의 숫자순으로 지정:

stackedplot(tbl,[4 2 3]);
  • StackedLineChart 객체를 반환하고 이 객체의 DisplayVariables 속성의 값들을 다시 정렬:

s = stackedplot(tbl);
s.DisplayVariables = ["RestorationTime","Loss","Customers"]

숫자형 행렬과 숫자형 벡터를 만듭니다.

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.

일련의 날씨 측정값이 있는 타임테이블을 불러옵니다. 처음 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.

샘플 MAT 파일 outdoorsindoors에서 2개의 타임테이블을 불러옵니다.

load indoors.mat
load outdoors.mat
head(indoors,3)
           Time            Humidity    AirQuality
    ___________________    ________    __________

    2015-11-15 00:00:24       36           80    
    2015-11-15 01:13:35       36           80    
    2015-11-15 02:26:47       37           79    
head(outdoors,3)
           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   

여러 테이블이나 여러 타임테이블로 누적 플롯을 만들 때는 범례가 포함됩니다. 기본적으로, 범례는 입력값의 이름을 레이블로 사용합니다. 그러나 사용자가 레이블을 지정하고 범례에서 레이블의 방향을 지정할 수 있습니다.

stackedplot(indoors,outdoors,"LegendLabels",["Inside Readings","Outside Readings"],...
                                 "LegendOrientation","vertical")

Figure contains an object of type stackedplot.

또한 범례를 숨길 수 있습니다.

stackedplot(indoors,outdoors,"LegendVisible","off")

Figure contains an object of type stackedplot.

stackedplot 함수는 StackedLineChart 객체를 반환합니다. 이 객체를 사용하여 모든 플롯에 동일한 선 및 좌표축 속성을 설정하거나 개별 플롯에 서로 다른 속성값을 설정할 수 있습니다. 이 예제에서는 먼저 누적 플롯에 있는 모든 플롯의 선 너비를 변경합니다. 그런 다음 각 플롯의 PlotType 속성을 사용하여 누적 플롯이 선 플롯, 산점도 플롯 및 계단 플롯을 갖도록 지정합니다.

일련의 날씨 측정값이 있는 타임테이블을 불러옵니다.

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
       EventsVisible: on

  Use GET to show all properties

객체는 모든 플롯에 적용되는 많은 속성에 대한 액세스 권한을 제공합니다. 예를 들어, s.LineWidth를 사용하여 선을 더 굵게 만들 수 있습니다.

s.LineWidth = 2;

Figure contains an object of type stackedplot.

객체는 또한 개별 플롯의 선 및 y축을 수정하는 데 사용할 수 있는 객체 배열에 대한 액세스 권한도 제공합니다. 각 선의 속성에 액세스하려면 s.LineProperties를 사용하십시오. 각 플롯에 다른 선 스타일, 마커, 플롯 유형 등을 지정할 수 있습니다.

s.LineProperties
ans=3×1 StackedLineProperties array with properties:
    Color
    MarkerFaceColor
    MarkerEdgeColor
    LineStyle
    LineWidth
    Marker
    MarkerSize
    PlotType

PlotType 속성을 사용하여 두 번째 플롯을 산점도 플롯으로, 세 번째 플롯을 계단 플롯으로 변경합니다.

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 StackedAxesProperties array with properties:
    YLimits
    YScale
    LegendLabels
    LegendLocation
    LegendVisible
    CollapseLegend

예를 들어, 첫 번째 플롯의 y 제한을 변경해 보겠습니다.

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

Figure contains an object of type stackedplot.

Weight, Systolic, Diastolic 변수를 사용하여 환자 데이터의 서브셋에서 테이블을 만듭니다.

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

     176        124          93    
     163        109          77    
     131        125          83    

동일한 y축을 사용하여 SystolicDiastolic을 플로팅하고 자체 y축을 사용하여 Weight를 플로팅한 누적 플롯을 만듭니다. 먼저, vars를 요소를 2개 가진 셀형 배열로 지정합니다. 첫 번째 요소는 "Systolic""Diastolic"을 함께 string형 배열로 그룹화합니다. 이러한 변수는 공통 y축에 함께 플로팅됩니다. 셀형 배열의 두 번째 요소는 "Weight"입니다. 이 변수는 자체 y축에 플로팅됩니다. 또한 누적 플롯의 속성을 가진 StackedLineChart 객체를 반환합니다.

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

s = stackedplot(tbl,vars)

Figure contains an object of type stackedplot.

s = 
  StackedLineChart with properties:

         SourceTable: [100x3 table]
    DisplayVariables: {{1x2 cell}  'Weight'}
           XVariable: []
               Color: [0 0.4470 0.7410]
           LineStyle: '-'
           LineWidth: 0.5000
              Marker: 'none'
          MarkerSize: 6

  Use GET to show all properties

하나의 y축에 여러 변수를 플로팅하는 경우, 스타일을 지정하는 배열을 할당하여 해당 y축 내의 선에 서로 다른 스타일을 할당할 수 있습니다.

예를 들어, 첫 번째 y축의 두 선에 대해 동일한 색을 지정하려면 s.LineProperties(1).Color에 색을 할당합니다. 두 선에 서로 다른 선 스타일을 지정하려면 두 개의 서로 다른 스타일을 지정하는 string형 배열을 s.LineProperties(1).LineStyle에 할당합니다.

s.LineProperties(1).Color = "magenta"; 
s.LineProperties(1).LineStyle = ["--",":"];

Figure contains an object of type stackedplot.

샘플 MAT 파일 outdoorsindoors에서 2개의 타임테이블을 불러옵니다.

load indoors.mat
load outdoors.mat

누적 플롯을 만듭니다.

s = stackedplot(indoors,outdoors);

Figure contains an object of type stackedplot.

어떤 변수를 어떤 타임테이블에서 가져왔는지 나타내기 위해 사용하는 색의 순서를 변경합니다. 타임테이블이 여러 개 있으면 색의 이름으로 선택하는 것이 편리합니다.

colororder(s,["magenta","green"])

Figure contains an object of type stackedplot.

더 많은 수의 입력 테이블이나 타임테이블에서 변수를 플로팅하는 경우 컬러맵을 사용하여 색 순서를 설정하는 것이 더 편리할 수 있습니다. 컬러맵의 색 개수를 n개로 지정합니다. 여기서 n은 누적 플롯을 만들 때 지정한 테이블 또는 타임테이블 개수입니다.

예를 들어, parula 함수로 색 순서를 설정하여 파룰라(parula) 컬러맵을 반환합니다. 색 개수를 타임테이블 개수와 동일하게 지정합니다. 누적 플롯에 테이블이나 타임테이블이 몇 개가 표시될지 모르는 경우에는 stackedplot에 의해 반환된 StackedLineChart 객체의 SourceTable 속성을 사용하십시오.

numTimetables = numel(s.SourceTable);
colororder(s,parula(numTimetables))

Figure contains an object of type stackedplot.

데이터를 타임테이블로 가져옵니다. 그런 다음 누적 플롯을 만듭니다. 기본적으로, 모든 플롯은 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
       EventsVisible: on

  Use GET to show all properties

s.AxesProperties 속성을 통해 개별 y축의 속성(예: 스케일)에 액세스할 수 있습니다.

s.AxesProperties
ans=3×1 StackedAxesProperties array with properties:
    YLimits
    YScale
    LegendLabels
    LegendLocation
    LegendVisible
    CollapseLegend

첫 번째 플롯과 두 번째 플롯을 y축에 로그 스케일이 있는 세미로그 플롯으로 전환하려면 플롯의 YScale 속성을 'log'로 설정하십시오.

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

Figure contains an object of type stackedplot.

입력 인수

모두 축소

입력 테이블 또는 타임테이블입니다. stackedplot 함수는 숫자형, 논리형, categorical형, datetime형, duration형 변수를 모두 플로팅하고 다른 데이터형을 갖는 테이블 변수는 무시합니다. tbl에 25개를 넘는 변수가 있는 경우 stackedplot는 처음 25개만 플로팅합니다.

입력 테이블이나 타임테이블을 여러 개 지정하려면 쉼표로 구분된 목록을 사용하거나 테이블 또는 타임테이블로 구성된 셀형 배열을 사용합니다. 여러 입력값을 지정할 때는 stackedplot에 대한 하나의 호출 안에 테이블과 타임테이블을 섞을 수 없습니다.

입력 테이블 또는 타임테이블의 변수로, 다음 표의 인덱싱 방식 중 하나를 사용하여 지정됩니다.

참고: 여러 테이블 또는 여러 타임테이블로 누적 플롯을 만드는 경우 vars는 string형 배열, 문자형 벡터로 이루어진 셀형 배열, 또는 요소가 string형 배열인 셀형 배열이나 요소가 문자형 벡터로 이루어진 셀형 배열인 셀형 배열만 가능합니다.

인덱싱 방식예제

변수 이름:

  • string형 배열 또는 문자형 벡터로 구성된 셀형 배열.

  • "A"A라는 변수

  • ["A","B"] 또는 {'A','B'}AB라는 2개의 변수

변수 인덱스(단일 테이블 또는 단일 타임테이블에만 해당):

  • 테이블에서의 변수 위치를 나타내는 인덱스 번호.

  • 숫자 벡터.

  • 논리형 벡터. 일반적으로 이 벡터는 변수의 개수와 길이가 같지만 후행 0 값 또는 false 값을 생략할 수 있습니다.

  • 3 — 테이블의 세 번째 변수

  • [2 3] — 테이블의 두 번째 변수와 세 번째 변수

  • [false false true] — 세 번째 변수

변수 유형(단일 테이블 또는 단일 타임테이블에만 해당):

  • 지정된 유형의 변수를 선택하는 vartype 첨자.

  • vartype("categorical") — categorical형 값을 포함하는 모든 변수

중첩 셀형 배열에 지정된 변수:

  • 숫자형 배열을 포함하는 셀형 배열(단일 테이블 또는 단일 타임테이블에만 해당).

  • string형 배열을 포함하는 셀형 배열.

  • 문자형 벡터로 구성된 셀형 배열을 포함하는 셀형 배열.

  • {[1 2] 3} — 첫 번째 변수와 두 번째 변수는 하나의 y축에 플로팅되고 세 번째 변수는 두 번째 y축에 플로팅됨

  • {["A","B"],"C"} — 변수 AB는 하나의 y축에 플로팅되고 변수 C는 두 번째 y축에 플로팅됨

  • {{'A','B'},'C'} — 변수 AB는 하나의 y축에 플로팅되고 변수 C는 두 번째 y축에 플로팅됨

예: stackedplot(tbl,[1 3 4])는 첫 번째, 세 번째, 네 번째 변수를 지정합니다.

예: stackedplot(tbl,{["Temp1","Temp2"],"Pressure"})는 중첩 셀 배열을 사용하여 Temp1Temp2가 동일한 y축에 플로팅되도록 지정합니다.

예: stackedplot(tbl,{{1,2},5})는 번호를 사용하여 변수를 지정하고 첫 번째 변수와 두 번째 변수를 동일한 y축에 플로팅합니다.

x 값으로, 숫자형, datetime형, duration형 또는 논리형 벡터로 지정됩니다. X의 길이는 Y의 행 개수와 같아야 합니다.

y 값으로, 숫자형, datetime형, duration형, categorical형 또는 논리형 배열로 지정됩니다. stackedplot 함수는 각 열을 별도의 y축에 표시합니다.

선 스타일, 마커, 색으로, 기호를 포함하는 string형 스칼라 또는 문자형 벡터로 지정됩니다. 기호는 어떤 순서로 지정해도 좋습니다. 세 가지 특성(선 스타일, 마커, 색)을 모두 지정할 필요는 없습니다. 예를 들어 선 스타일을 생략하고 마커를 지정하면 플롯은 마커만 표시하고 선은 표시하지 않습니다.

예: "--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

"square"정사각형

Sample of square marker

"diamond"다이아몬드

Sample of diamond 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

"pentagram"펜타그램

Sample of pentagram marker

"hexagram"헥사그램

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

x 값을 포함하는 테이블 변수로, string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, 정수형 배열 또는 논리형 배열로 지정됩니다.

입력 인수 tbl 또는 tbl1,...,tblN이 타임테이블, 벡터 또는 행렬이 아니라 테이블인 경우에만 xvar을 지정할 수 있습니다.

  • 입력값이 하나의 테이블이면 xvar은 테이블에 있는 하나의 변수를 지정합니다.

  • 입력값이 여러 테이블이면 xvar은 모든 테이블에 존재하는 하나의 변수를 지정하거나 테이블마다 다르게 존재하는 변수를 각각 지정할 수 있습니다.

    예를 들어, 입력값이 tbl1,tbl2,tbl3인 경우 각 테이블마다 x 값을 제공하는 X라는 변수가 있으면 xvar"X"가 될 수 있습니다. 그러나 tbl1에는 X1 변수, tbl2에는 X2 변수, tbl3에는 X3 변수가 있으면 xvar["X1","X2","X3"]으로 지정합니다.

부모 컨테이너로, Figure, Panel, Tab, TiledChartLayout 또는 GridLayout 객체로 지정됩니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: stackedplot(tbl,Marker="o",MarkerSize=10)

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: stackedplot(tbl,"Marker","o","MarkerSize",10)

여기에 나열된 누적 차트의 선 속성은 데이터 소스가 테이블이든 배열이든 관계없이 모든 누적 플롯에 공통된 서브셋입니다. 전체 목록을 보려면 StackedLineChart Properties을 참조하십시오.

선 색으로, RGB 3색, 16진수 색 코드 또는 첫 번째 표에 나열된 색 옵션 중 하나로 지정됩니다.

사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.

  • RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는 [0,1]이어야 합니다(예: [0.4 0.6 0.7]).

  • 16진수 색 코드는 string형 스칼라 또는 문자형 벡터로, 해시 기호(#)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0에서 F 사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드 "#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

"square"정사각형

Sample of square marker

"diamond"다이아몬드

Sample of diamond 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

"pentagram"펜타그램

Sample of pentagram marker

"hexagram"헥사그램

Sample of hexagram marker

"none"마커 없음해당 없음

마커 크기로, 양의 값으로 지정됩니다(단위: 포인트). 여기서 1포인트는 1/72인치와 같습니다.

세부 정보

모두 축소

독립형 시각화

독립형 시각화는 특수 목적으로 설계된 차트로, 다른 차트와 독립적으로 작동합니다. plot이나 surf와 같은 다른 차트와 달리 독립형 시각화에는 사전 구성된 axes 객체가 내장되어 있으며 일부 사용자 지정이 불가합니다. 독립형 시각화에는 다음과 같은 특성도 있습니다.

  • 선, 패치, 곡면과 같은 다른 그래픽스 요소와 결합할 수 없습니다. 따라서 hold 명령은 지원되지 않습니다.

  • gca 함수는 chart 객체를 현재 좌표축으로 반환할 수 있습니다.

  • 입력 인수로 axes 객체를 받는 여러 MATLAB 함수에 chart 객체를 전달할 수 있습니다. 예를 들어, chart 객체를 title 함수에 전달할 수 있습니다.

  • 누적 플롯의 데이터를 대화형 방식으로 살펴보려면 다음 기능을 사용하십시오.

    • 확대/축소 — 스크롤 휠을 사용하여 확대/축소합니다.

    • 패닝 — 누적 플롯을 클릭하고 끌어서 x 값을 패닝합니다.

    • 데이터 커서 — 각 플롯의 임의의 위치에 커서를 올려 놓으면 y 값이 표시됩니다.

버전 내역

R2018b에 개발됨

모두 확장