테이블을 지원하는 플롯
많은 플로팅 함수가 테이블에서 데이터를 바로 플로팅할 수 있습니다. 플로팅할 변수 앞에 있는 함수에 테이블을 첫 번째 인수로 전달할 수 있습니다. 테이블 또는 타임테이블을 지정할 수 있고, 많은 경우 동일한 좌표축에 여러 데이터 세트를 함께 플로팅할 수 있습니다.
다음 예제에서는 plot
과 scatter
함수를 사용하여 테이블에서 데이터를 플로팅하는 전반적인 접근 방식을 보여줍니다. 특정 플로팅 함수가 테이블을 지원하는지 확인하려면 해당 함수의 문서를 참조하십시오.
단순한 선 플롯 만들기
세 개의 변수를 포함하는 테이블을 만듭니다. 그런 다음 플로팅할 변수의 이름 앞에 테이블을 두고 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")
여러 데이터 세트를 함께 플로팅하려면 x 좌표나 y 좌표 또는 두 좌표 모두에 대해 테이블 변수 이름으로 구성된 string형 벡터를 지정합니다. 예를 들어, y축에 Output1
변수와 Output2
변수를 함께 플로팅해 보겠습니다.
y 좌표가 서로 다른 두 테이블 변수에서 비롯된 것이므로 y축 레이블이 어떻게 되어야 하는지가 명확하지 않습니다. 따라서 축 레이블이 빈 상태로 남아 있습니다. 그러나 범례를 추가하면 범례 항목은 대응하는 변수 이름과 일치하게 됩니다.
plot(tbl,"Input",["Output1","Output2"]) legend
선 플롯 사용자 지정하기
테이블로 플로팅한 다음에 선 모양을 사용자 지정하려면 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];
산점도 플롯 사용자 지정하기
테이블로 플로팅한 다음에 속성을 설정하여 산점도 플롯의 마커 모양을 사용자 지정할 수 있습니다. 예를 들어 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;
테이블 변수에 따라 마커의 색과 투명도를 다양하게 할 수도 있습니다. 예를 들어 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";
테이블을 수정하여 플롯 업데이트하기
플로팅 함수에 테이블을 전달하면 plot 객체의 SourceTable
속성에 테이블의 복사본이 저장됩니다. 그 속성에 저장된 테이블 내용을 변경하면 변경 사항을 표시하도록 플롯이 자동으로 업데이트됩니다. 하지만 작업 공간에서 테이블을 변경할 경우 변경 사항은 플롯에 영향을 주지 않습니다.
예를 들어, patients.xls
를 테이블로 읽어오고 Weight
변수 대 Height
변수를 플로팅합니다. 나중에 다른 속성에 액세스할 수 있도록 Scatter
객체를 s
로 반환합니다.
tbl = readtable("patients.xls"); s = scatter(tbl,"Height","Weight","filled");
테이블의 값을 변경하려면 점 표기법을 사용하여 Scatter
객체의 SourceTable
속성에서 테이블을 참조합니다. 여기에서는 Weight
변수의 최댓값을 구하고 이를 300
으로 변경합니다. 플롯이 자동으로 업데이트됩니다.
[~,idx] = max(s.SourceTable.Weight); s.SourceTable.Weight(idx) = 300;
테이블과 벡터 데이터 결합하기
테이블을 지원하는 많은 플롯에서는 테이블 변수를 사용하여 플롯의 특정 측면을 지정하고 벡터 또는 행렬을 사용하여 플롯의 다른 측면을 지정할 수 있습니다. 예를 들어 테이블의 좌표를 사용하여 산점도 플롯을 만들고, CData
속성을 벡터, RGB 3색, 또는 RGB 3색으로 구성된 행렬로 설정하여 마커 색을 사용자 지정할 수 있습니다.
예를 들어, 테이블의 데이터를 사용하여 산점도 플롯을 만들어 보겠습니다. patients.xls
를 테이블로 읽어오고 Weight
변수 대 Height
변수를 플로팅합니다.
tbl = readtable("patients.xls"); s = scatter(tbl,"Height","Weight","filled");
그다음, 벡터를 사용하여 플로팅된 점의 색을 변경합니다. 이 경우처럼 서로 다른 소스의 데이터를 결합하는 경우 각 벡터나 행렬 또는 테이블 변수의 크기는 생성하려는 플롯과 호환해야 합니다. 여기에서는 테이블의 수축기 값을 확장기 값으로 나누어 bpratio
라는 벡터를 생성합니다. bpratio
는 Height
변수 및 Weight
변수와 동일한 테이블에서 파생된 것이기 때문에 이들 변수와 동일한 개수의 요소를 가지므로 이 플롯과 호환됩니다.
CData
속성을 bpratio
로 설정하여 혈압비에 따라 각 점의 색을 지정합니다. 그런 다음 컬러바를 추가합니다.
% Vary the color by blood pressure ratio bpratio = tbl.Systolic./tbl.Diastolic; s.CData = bpratio; % Add a colorbar colorbar
또한 벡터 또는 행렬을 플로팅하고 테이블 변수를 사용하여 플롯을 수정할 수도 있습니다. 플롯을 생성한 후 SourceTable
속성을 설정한 다음 원하는 테이블 관련 속성을 설정합니다. 일반적으로 테이블 관련 속성에는 이름에 Variable
이라는 단어가 있습니다. 예를 들어 100개의 난수로 구성된 두 벡터를 플로팅해 보겠습니다.
x = rand(100,1);
y = rand(100,1);
s = scatter(x,y,"filled");
마커 색이 테이블 변수의 값에 따라 변하도록 마커 색을 변경합니다. 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
참고: heatmap
같은 독립형 시각화에서는 테이블 데이터와 벡터 데이터를 함께 사용할 수 없습니다.
참고 항목
함수
plot
|scatter
|table
|readtable
|readtimetable