Main Content

테이블을 지원하는 플롯

많은 플로팅 함수가 테이블에서 데이터를 바로 플로팅할 수 있습니다. 플로팅할 변수 앞에 있는 함수에 테이블을 첫 번째 인수로 전달할 수 있습니다. 테이블 또는 타임테이블을 지정할 수 있고, 많은 경우 동일한 좌표축에 여러 데이터 세트를 함께 플로팅할 수 있습니다.

다음 예제에서는 plotscatter 함수를 사용하여 테이블에서 데이터를 플로팅하는 전반적인 접근 방식을 보여줍니다. 특정 플로팅 함수가 테이블을 지원하는지 확인하려면 해당 함수의 문서를 참조하십시오.

단순한 선 플롯 만들기

세 개의 변수를 포함하는 테이블을 만듭니다. 그런 다음 플로팅할 변수의 이름 앞에 테이블을 두고 plot 함수에 첫 번째 인수로 전달합니다. 여기에서는 x축에 Input 변수를, y축에 Output1 변수를 플로팅해 보겠습니다. 축 레이블이 변수 이름과 일치하는 것을 알 수 있습니다.

% Create a table
Input = linspace(0,12)';
Output1 = sin(Input);
Output2 = sin(Input/3);
tbl = table(Input,Output1,Output2);

% Plot the table variables
plot(tbl,"Input","Output1")

Figure contains an axes object. The axes object with xlabel Input, ylabel Output1 contains an object of type line.

여러 데이터 세트를 함께 플로팅하려면 x 좌표나 y 좌표 또는 두 좌표 모두에 대해 테이블 변수 이름으로 구성된 string형 벡터를 지정합니다. 예를 들어, y축에 Output1 변수와 Output2 변수를 함께 플로팅해 보겠습니다.

y 좌표가 서로 다른 두 테이블 변수에서 비롯된 것이므로 y축 레이블이 어떻게 되어야 하는지가 명확하지 않습니다. 따라서 축 레이블이 빈 상태로 남아 있습니다. 그러나 범례를 추가하면 범례 항목은 대응하는 변수 이름과 일치하게 됩니다.

plot(tbl,"Input",["Output1","Output2"])
legend

Figure contains an axes object. The axes object with xlabel Input contains 2 objects of type line.

선 플롯 사용자 지정하기

테이블로 플로팅한 다음에 선 모양을 사용자 지정하려면 LineStyle 속성과 Color 속성을 설정하십시오. 예를 들어 weather.csv를 타임테이블로 읽어오고 행 시간값에 대해 Temperature 변수를 플로팅해 보겠습니다. 나중에 속성을 설정할 수 있도록 Line 객체를 p로 반환합니다.

참고: 이 코드는 x 좌표에 대한 변수를 생략합니다. x 좌표를 생략하면 y 좌표가 행 인덱스(테이블의 경우) 또는 행 시간값(타임테이블의 경우)에 대해 플로팅됩니다.

tbl = readtimetable("weather.csv");
p = plot(tbl,"Temperature");

선 스타일을 파선으로 변경하고 색을 자주색 음영으로 변경합니다.

p.LineStyle = "--";
p.Color = [0.5 0 1];

Figure contains an axes object. The axes object with xlabel Time, ylabel Temperature contains an object of type line.

산점도 플롯 사용자 지정하기

테이블로 플로팅한 다음에 속성을 설정하여 산점도 플롯의 마커 모양을 사용자 지정할 수 있습니다. 예를 들어 patients.xls를 테이블로 읽어오고, 채워진 마커와 함께 Diastolic 변수를 Systolic 변수에 대해 플로팅해 보겠습니다. 나중에 속성을 설정할 수 있도록 Scatter 객체를 s로 반환합니다.

tbl = readtable("patients.xls");
s = scatter(tbl,"Systolic","Diastolic","filled");

마커 기호를 정사각형으로 변경하고, 마커를 연한 파란색 음영으로 채우고, 마커 크기를 80으로 변경합니다.

s.Marker = "sq";
s.MarkerFaceColor = [0.5 0.7 1];
s.SizeData = 80;

Figure contains an axes object. The axes object with xlabel Systolic, ylabel Diastolic contains an object of type scatter.

테이블 변수에 따라 마커의 색과 투명도를 다양하게 할 수도 있습니다. 예를 들어 MarkerFaceColor 속성을 "flat"으로 설정한 다음 ColorVariable 속성을 "Age"로 설정하여 Age 변수에 따라 색을 다양하게 해 보겠습니다.

MarkerFaceAlpha 속성을 "flat"으로 설정한 다음 AlphaVariable 속성을 "Weight"로 설정하여 Weigh 변수에 따라 투명도를 다양하게 합니다.

% Vary the colors
s.MarkerFaceColor = "flat";
s.ColorVariable = "Age";

% Vary the transparency
s.MarkerFaceAlpha = "flat";
s.AlphaVariable = "Weight";

Figure contains an axes object. The axes object with xlabel Systolic, ylabel Diastolic contains an object of type scatter.

테이블을 수정하여 플롯 업데이트하기

플로팅 함수에 테이블을 전달하면 plot 객체의 SourceTable 속성에 테이블의 복사본이 저장됩니다. 그 속성에 저장된 테이블 내용을 변경하면 변경 사항을 표시하도록 플롯이 자동으로 업데이트됩니다. 하지만 작업 공간에서 테이블을 변경할 경우 변경 사항은 플롯에 영향을 주지 않습니다.

예를 들어, patients.xls를 테이블로 읽어오고 Weight 변수 대 Height 변수를 플로팅합니다. 나중에 다른 속성에 액세스할 수 있도록 Scatter 객체를 s로 반환합니다.

tbl = readtable("patients.xls");
s = scatter(tbl,"Height","Weight","filled");

Figure contains an axes object. The axes object with xlabel Height, ylabel Weight contains an object of type scatter.

테이블의 값을 변경하려면 점 표기법을 사용하여 Scatter 객체의 SourceTable 속성에서 테이블을 참조합니다. 여기에서는 Weight 변수의 최댓값을 구하고 이를 300으로 변경합니다. 플롯이 자동으로 업데이트됩니다.

[~,idx] = max(s.SourceTable.Weight);
s.SourceTable.Weight(idx) = 300;

Figure contains an axes object. The axes object with xlabel Height, ylabel Weight contains an object of type scatter.

테이블과 벡터 데이터 결합하기

테이블을 지원하는 많은 플롯에서는 테이블 변수를 사용하여 플롯의 특정 측면을 지정하고 벡터 또는 행렬을 사용하여 플롯의 다른 측면을 지정할 수 있습니다. 예를 들어 테이블의 좌표를 사용하여 산점도 플롯을 만들고, CData 속성을 벡터, RGB 3색, 또는 RGB 3색으로 구성된 행렬로 설정하여 마커 색을 사용자 지정할 수 있습니다.

예를 들어, 테이블의 데이터를 사용하여 산점도 플롯을 만들어 보겠습니다. patients.xls를 테이블로 읽어오고 Weight 변수 대 Height 변수를 플로팅합니다.

tbl = readtable("patients.xls");
s = scatter(tbl,"Height","Weight","filled");

Figure contains an axes object. The axes object with xlabel Height, ylabel Weight contains an object of type scatter.

그다음, 벡터를 사용하여 플로팅된 점의 색을 변경합니다. 이 경우처럼 서로 다른 소스의 데이터를 결합하는 경우 각 벡터나 행렬 또는 테이블 변수의 크기는 생성하려는 플롯과 호환해야 합니다. 여기에서는 테이블의 수축기 값을 확장기 값으로 나누어 bpratio라는 벡터를 생성합니다. bpratioHeight 변수 및 Weight 변수와 동일한 테이블에서 파생된 것이기 때문에 이들 변수와 동일한 개수의 요소를 가지므로 이 플롯과 호환됩니다.

CData 속성을 bpratio로 설정하여 혈압비에 따라 각 점의 색을 지정합니다. 그런 다음 컬러바를 추가합니다.

% Vary the color by blood pressure ratio
bpratio = tbl.Systolic./tbl.Diastolic;
s.CData = bpratio;

% Add a colorbar
colorbar

Figure contains an axes object. The axes object with xlabel Height, ylabel Weight contains an object of type scatter.

또한 벡터 또는 행렬을 플로팅하고 테이블 변수를 사용하여 플롯을 수정할 수도 있습니다. 플롯을 생성한 후 SourceTable 속성을 설정한 다음 원하는 테이블 관련 속성을 설정합니다. 일반적으로 테이블 관련 속성에는 이름에 Variable이라는 단어가 있습니다. 예를 들어 100개의 난수로 구성된 두 벡터를 플로팅해 보겠습니다.

x = rand(100,1);
y = rand(100,1);
s = scatter(x,y,"filled");

Figure contains an axes object. The axes object contains an object of type scatter.

마커 색이 테이블 변수의 값에 따라 변하도록 마커 색을 변경합니다. patients.xls를 테이블 tbl로 읽어옵니다. SourceTable 속성을 설정하고 테이블의 Age 변수에 따라 마커 색을 다양하게 지정합니다. 테이블에 100개 행이 있고 플롯에 100개 점이 있으므로 Age 변수는 이 플롯과 호환됩니다. 그런 다음 컬러바를 플롯에 추가합니다.

% Set source table and vary color by age
s.SourceTable = tbl;
s.ColorVariable = "Age";

% Add a colorbar
colorbar

Figure contains an axes object. The axes object contains an object of type scatter.

참고: heatmap 같은 독립형 시각화에서는 테이블 데이터와 벡터 데이터를 함께 사용할 수 없습니다.

참고 항목

함수

속성

관련 항목