Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

stackedplot

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

설명

예제

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

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

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

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

예제

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

stackedplot(___,'XVariable',xvar)는 누적 플롯의 x 값이 될 테이블 변수를 지정합니다. 이 구문은 타임테이블이 아니라 테이블만 지원합니다.

예제

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

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

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

예제

stackedplot(___,Name,Value)는 하나 이상의 Name,Value 쌍 인수를 사용하여 누적 플롯의 속성을 설정합니다. 속성 목록은 StackedLineChart Properties를 참조하십시오. 위에 열거된 구문에 나와 있는 입력 인수를 조합하여 이 옵션과 함께 사용하십시오. 이름-값 쌍 설정은 누적 플롯의 모든 플롯에 적용됩니다. 각 속성 이름을 따옴표로 묶습니다.

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

예제

s = stackedplot(___)StackedLineChart 객체를 반환합니다. 누적 플롯을 만든 후에 s를 사용하여 플롯의 속성을 변경할 수 있습니다. 속성 목록은 StackedLineChart Properties를 참조하십시오.

예제

모두 축소

스프레드시트 데이터를 테이블로 읽어 들입니다. 그런 다음, 테이블을 타임테이블로 변환합니다. 날짜와 시간을 포함하는 첫 번째 변수인 OutageTime은 타임테이블의 행 시간값을 제공합니다. 처음 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'   }

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

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

stackedplot(tbl)

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

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개의 변수만 플로팅합니다.

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

타임테이블을 생성하고 처음 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'}

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

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

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

  • 테이블에서 숫자순으로 지정: stackedplot(tbl,[4 2 3]);

  • StackedLineChart 객체를 반환하고 이 객체의 DisplayVariables 속성의 값들을 다시 정렬: s = stackedplot(tbl); s.DisplayVariables = {'RestorationTime','Loss','Customers'}

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

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축을 사용하여 SystolicDiastolic을 플로팅한 누적 플롯을 만듭니다. 변수를 함께 플로팅하려면 중첩된 셀형 배열 내에 변수를 지정하십시오.

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)

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

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)

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 속성을 사용하여 두 번째 플롯을 산점도 플롯으로, 세 번째 플롯을 계단 플롯으로 변경합니다.

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

입력 인수

모두 축소

입력 테이블 또는 타임테이블입니다.

입력 테이블의 변수로, 문자형 벡터로 구성된 셀형 배열, string형 배열, 숫자형 배열 또는 논리형 배열로 지정됩니다.

vars가 셀형 배열인 경우 중첩 셀형 배열이 될 수도 있습니다. stackedplot 함수는 중첩 셀에 지정된 모든 변수를 같은 y축에 플로팅합니다.

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

입력 인수 tbl이 타임테이블이 아니라 테이블인 경우에만 xvar을 지정할 수 있습니다.

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

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

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

예: '--or'은 원 마커로 표시된 빨간색 파선입니다.

선 스타일설명
-실선(디폴트 값)
--파선
:점선
-.일점 쇄선
마커설명
o
+플러스 기호
*별표
.
x십자
s정사각형
d다이아몬드
^위쪽 방향 삼각형
v아래쪽 방향 삼각형
>오른쪽 방향 삼각형
<왼쪽 방향 삼각형
p펜타그램
h헥사그램
설명

y

노란색

m

자홍색

c

녹청색

r

빨간색

g

녹색

b

파란색

w

흰색

k

검은색

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

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

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

'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에 개발됨