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

heatmap

히트맵 차트 생성

구문

h = heatmap(tbl,xvar,yvar)
h = heatmap(tbl,xvar,yvar,'ColorVariable',cvar)
h = heatmap(cdata)
h = heatmap(xvalues,yvalues,cdata)
h = heatmap(___,Name,Value)
h = heatmap(parent,___)

설명

예제

h = heatmap(tbl,xvar,yvar)은 테이블 tbl에서 히트맵을 만들고 HeatmapChart 객체를 반환합니다. xvar 입력값은 x축을 따라 표시할 테이블 변수를 나타냅니다. yvar 입력값은 y축을 따라 표시할 테이블 변수를 나타냅니다. 디폴트 색은 x 값과 y 값의 쌍이 테이블에 함께 표시되는 총 횟수인 도수 집계를 기준으로 합니다. heatmap 객체가 생성된 후에 수정하려면 h를 사용하십시오. 속성 목록은 HeatmapChart 속성를 참조하십시오.

예제

h = heatmap(tbl,xvar,yvar,'ColorVariable',cvar)cvar로 지정된 테이블 변수를 사용하여 색 데이터를 계산합니다. 디폴트 계산 방법은 평균 집계입니다.

예제

h = heatmap(cdata)는 행렬 cdata에서 히트맵을 만듭니다. 이 히트맵은 cdata의 값마다 하나의 셀을 갖습니다.

예제

h = heatmap(xvalues,yvalues,cdata)x축과 y축에 표시되는 값의 레이블을 지정합니다.

예제

h = heatmap(___,Name,Value)는 하나 이상의 이름-값 쌍 인수를 사용하여 히트맵에 대한 추가 옵션을 지정합니다. 다른 모든 입력 인수 다음에 옵션을 지정합니다. 속성 목록은 HeatmapChart 속성를 참조하십시오.

h = heatmap(parent,___)parent로 지정된 Figure, 패널 또는 탭에 히트맵을 만듭니다.

예제

모두 축소

환자에 대한 데이터 테이블에서 히트맵을 만듭니다.

patients 데이터 세트를 불러오고 작업 공간에 불러온 변수 일부로 테이블을 만듭니다. 그런 다음 Smoker 값과 SelfAssessedHealthStatus 값의 쌍이 동일한 경우의 환자 수를 모두 셉니다.

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus');

히트맵을 만들고 y축의 레이블을 다시 정렬합니다.

patients 데이터 세트를 불러오고 불러온 데이터에서 히트맵을 만듭니다. 변수 hHeatmapChart 객체를 할당합니다.

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus');

y축의 레이블을 다시 정렬합니다.

h.YDisplayData = {'Excellent','Good','Fair','Poor'};

또는 데이터를 categorical형 데이터로 변경한 다음 reordercats 함수를 사용하여 범주의 순서를 변경하는 방식으로 레이블의 순서를 변경할 수 있습니다. 마찬가지로, addcats, removecats 또는 renamecats 함수를 각각 사용하여 히트맵 레이블을 추가하거나, 제거하거나, 이름을 바꿀 수 있습니다.

히트맵을 만들고 히트맵 셀 색을 결정할 때 사용할 테이블 변수를 지정합니다.

patients 데이터 세트를 불러오고 불러온 데이터에서 히트맵을 만듭니다. ColorVariable 옵션을 'Age'로 설정하여 Smoker 값과 SelfAssessedHealthStatus 값의 특정 쌍별로 환자의 평균 나이를 사용하여 각 셀에 색을 채웁니다.

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus','ColorVariable','Age');

히트맵을 만들고 히트맵 셀 색을 결정할 때 사용할 테이블 변수와 계산 방법을 지정합니다.

환자 데이터 세트를 불러오고 불러온 데이터에서 히트맵을 만듭니다. Smoker 값과 SelfAssessedHealthStatus 값의 특정 쌍별로 환자 나이의 중앙값을 사용하여 각 셀에 색을 채웁니다. ColorVariable 옵션을 'Age'로 지정하고 ColorMethod 옵션을 'median'으로 지정합니다.

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus','ColorVariable','Age','ColorMethod','median');

데이터로 구성된 행렬을 만듭니다. 그런 다음 행렬 값의 히트맵을 만듭니다. x축과 y축에 디폴트 레이블이 1, 2, 3과 같은 식으로 표시됩니다.

cdata = [45 60 32; 43 54 76; 32 94 68; 23 95 58];
h = heatmap(cdata);

데이터로 구성된 행렬을 만듭니다. 그런 다음 행렬 값의 히트맵을 만듭니다. 처음 2개의 입력 인수를 원하는 레이블로 지정하여 x축과 y축에 사용자 지정 레이블을 사용합니다. HeatmapChart 객체의 속성을 설정하여 제목과 축 레이블을 지정합니다.

cdata = [45 60 32; 43 54 76; 32 94 68; 23 95 58];
xvalues = {'Small','Medium','Large'};
yvalues = {'Green','Red','Blue','Gray'};
h = heatmap(xvalues,yvalues,cdata);

h.Title = 'T-Shirt Orders';
h.XLabel = 'Sizes';
h.YLabel = 'Colors';

히트맵을 만들고 ColorScaling 속성을 설정하여 각 열 또는 행에 색을 정규화합니다.

샘플 파일 outages.csv를 테이블로 읽어 들입니다. 샘플 파일에는 미국 내의 정전 기록을 나타내는 데이터가 들어 있습니다. 테이블에는 Region, OutageTime, Loss, Customers, RestorationTime, Cause의 6개 열이 포함되어 있습니다. 각 열에서 처음 5개 행을 표시합니다.

T = readtable('outages.csv');
T(1:5,:)
ans=5×6 table
      Region          OutageTime        Loss     Customers     RestorationTime           Cause      
    ___________    ________________    ______    __________    ________________    _________________

    'SouthWest'    2002-02-01 12:18    458.98    1.8202e+06    2002-02-07 16:50    'winter storm'   
    'SouthEast'    2003-01-23 00:49    530.14    2.1204e+05                 NaT    'winter storm'   
    'SouthEast'    2003-02-07 21:15     289.4    1.4294e+05    2003-02-17 08:14    'winter storm'   
    'West'         2004-04-06 05:44    434.81    3.4037e+05    2004-04-06 06:10    'equipment fault'
    'MidWest'      2002-03-16 06:18    186.44    2.1275e+05    2002-03-18 23:23    'severe storm'   

x축에 여러 지역을 표시하고 y축에 여러 가지 정전 원인을 표시하는 히트맵을 만듭니다. 각 셀에는 특정 원인으로 인해 각 지역에서 발생한 정전의 횟수가 표시됩니다.

h = heatmap(T,'Region','Cause');

각 열에서 색을 정규화합니다. 각 열에서 가장 작은 값은 컬러맵의 첫 번째 색에 매핑되고, 가장 큰 값은 마지막 색에 매핑됩니다. 마지막 색은 지역별로 정전을 가장 많이 유발한 원인을 나타냅니다.

h.ColorScaling = 'scaledcolumns';

이제 각 행에서 색을 정규화합니다. 각 행에서 가장 작은 값은 컬러맵의 첫 번째 색에 매핑되고, 가장 큰 값은 마지막 색에 매핑됩니다. 마지막 색은 각 원인으로 인해 정전이 가장 많이 발생한 지역을 나타냅니다.

h.ColorScaling = 'scaledrows';

히트맵을 만들고 사용자 지정 집계 메서드를 사용하여 계산된 데이터로 셀에 색을 채웁니다. accumarray 함수를 사용하여 색 데이터를 계산합니다.

샘플 파일 Temperature.csv를 테이블로 읽어 들입니다. 이 파일에는 Month, Year, TemperatureF의 3개 열이 포함되어 있습니다.

tbl = readtable(fullfile(matlabroot,'examples','graphics','TemperatureData.csv'));

테이블의 Month 열과 Year 열에서 categorical형 배열을 만듭니다. 그런 다음 x축과 y축에 레이블로 사용할 고유한 월과 연도를 결정합니다.

months = categorical(tbl.Month);
years = categorical(tbl.Year);
xlabels = categories(months);
ylabels = categories(years);

고유한 월과 연도의 개수를 기준으로 결과 색 데이터의 최종 크기를 결정합니다.

nummonths = numel(xlabels);
numyears = numel(ylabels);

categorical형 monthsyears 배열을 accumarray 함수에 사용할 숫자형 인덱스로 변환합니다. accumarray 함수를 사용하여 월과 연도 각 조합의 최대 온도로서 색 데이터를 계산합니다. 누락된 월과 연도 조합에는 NaN을 사용합니다.

x = double(months);
y = double(years);
temps = tbl.TemperatureF;
cdata = accumarray([y,x],temps,[numyears,nummonths],@max,NaN);

히트맵을 만듭니다. x축과 y축 각각에 월과 연도로 레이블을 지정합니다. 계산된 행렬 데이터를 사용하여 히트맵 셀에 색을 채웁니다.

h = heatmap(xlabels,ylabels,cdata);

참고: categorical형 배열에 reordercats 함수를 사용하여 축 레이블을 다시 정렬할 수 있습니다.

입력 인수

모두 축소

소스 테이블로, table형 또는 timetable형으로 지정됩니다.

table 함수를 사용하여 작업 공간 변수로부터 테이블을 만들거나 readtable 함수를 사용하여 데이터를 테이블로 가져올 수 있습니다. timetable 함수를 사용하여 작업 공간 변수에서 타임테이블을 만들 수 있습니다.

소스 테이블은 HeatmapChart 객체의 SourceTable 속성에 저장됩니다.

x축에 사용할 테이블 변수로, 다음 형식 중 하나로 지정됩니다.

  • 변수 이름 중 하나를 나타내는 문자형 벡터 또는 string형 스칼라. 예를 들어, heatmap(tbl,'HealthStatus','Gender')'HealthStatus'라는 이름의 변수를 x축 데이터로 선택합니다.

  • 테이블 변수 인덱스를 나타내는 숫자형 스칼라. 예를 들어, heatmap(tbl,2,3)은 테이블의 두 번째 변수를 x축 데이터로 선택합니다.

  • true 요소를 하나 포함하는 논리형 벡터.

테이블 변수에 연결되는 값은 categorical 함수가 허용하는 여러 범주의 유한한 세트로 그룹화되어야 합니다. 값이 유한한 범주 세트로 그룹화되지 않은 경우 discretize 함수를 사용하여 그룹화하십시오.

x축의 레이블은 사전순으로 표시됩니다. categorical형 배열을 사용하여 레이블을 사용자 지정할 수 있습니다. 예제는 테이블 형식 데이터에서 히트맵 생성하기 항목을 참조하십시오.

HeatmapChart 객체의 XVariable 속성에는 선택된 변수가 저장됩니다.

y축에 사용할 테이블 변수로, 다음 형식 중 하나로 지정됩니다.

  • 변수 이름 중 하나를 나타내는 문자형 벡터 또는 string형 스칼라. 예를 들어, heatmap(tbl,'HealthStatus','Gender')'HealthStatus'라는 이름의 변수를 y축 데이터로 선택합니다.

  • 테이블 변수 인덱스를 나타내는 숫자형 스칼라. 예를 들어, heatmap(tbl,2,3)은 테이블의 세 번째 변수를 y축 데이터로 선택합니다.

  • true 요소를 하나 포함하는 논리형 벡터.

테이블 변수에 연결되는 값은 categorical 함수가 허용하는 여러 범주의 유한한 세트로 그룹화되어야 합니다. 값이 유한한 범주 세트로 그룹화되지 않은 경우 discretize 함수를 사용하여 그룹화하십시오.

y축의 레이블은 사전순으로 표시됩니다. categorical형 배열을 사용하여 레이블을 사용자 지정할 수 있습니다. 예제는 테이블 형식 데이터에서 히트맵 생성하기 항목을 참조하십시오.

HeatmapChart 객체의 YVariable 속성에는 선택된 변수가 저장됩니다.

색 데이터로 사용할 테이블 변수로, 다음 형식 중 하나로 지정됩니다.

  • 변수 이름 중 하나를 나타내는 문자형 벡터 또는 string형 스칼라. 예를 들어, heatmap(__,'ColorVariable,'HealthStatus')'HealthStatus'라는 이름의 변수를 y축 데이터로 선택합니다.

  • 테이블 변수 인덱스를 나타내는 숫자형 스칼라. 예를 들어, heatmap(__,'ColorVariable',1)은 테이블의 세 번째 변수를 y축 데이터로 선택합니다.

  • true 요소를 하나 포함하는 논리형 벡터.

테이블 변수에 연결되는 값은 숫자형이거나 logical형이어야 합니다.

행렬 데이터를 사용할 경우 속성값은 빈 []입니다. HeatmapChart 객체의 ColorVariable 속성에는 선택된 변수가 저장됩니다. ColorData 속성에는 선택된 변수를 기준으로 데이터가 채워집니다.

기본적으로, heatmap은 평균 집계를 기준으로 색 데이터를 계산합니다. 계산 방법을 변경하려면 ColorMethod 속성을 설정하십시오.

히트맵 셀의 색 데이터로, 행렬로 지정됩니다.

이 값은 HeatmapChart 객체의 ColorData 속성에 저장됩니다.

예: [40 24 68; 68 37 58; 49 23 46]

x축에 표시되는 값으로, categorical형 배열, string형 배열, 숫자형 배열 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

예: {'small','medium','large'}

예: categorical({'small','medium','large'})

y축에 표시되는 값으로, categorical형 배열, string형 배열, 숫자형 배열 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

예: {'small','medium','large'}

예: categorical({'small','medium','large'})

플로팅할 상위(부모) 컨테이너로, Figure 객체, Panel 객체 또는 Tab 객체로 지정됩니다.

이름-값 쌍의 인수

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

예: heatmap(tbl,xvar,yvar,'ColorVariable','Temperatures','ColorMethod','median')

참고

여기에 나와 있는 속성은 일부에 불과합니다. 전체 목록을 보려면 HeatmapChart 속성를 참조하십시오.

차트 제목으로, 문자형 벡터, string형 스칼라 또는 제목이 없는 경우 ''로 지정됩니다. 테이블 형식 데이터의 경우 디폴트 차트의 제목이 자동 생성됩니다.

예: h = heatmap(__,'Title','My Title Text')

예: h.Title = 'My Title Text'

ColorData에 저장되는 색 데이터 값을 계산하는 방법으로, 'count', 'mean', 'median', 'sum' 또는 'none'으로 지정됩니다.

테이블에서 세 번째 변수를 색 데이터에 사용하지 않으려면 이 테이블의 메서드를 지정하십시오.

메서드설명
'count'x 값과 y 값의 각 쌍이 소스 테이블에 표시되는 횟수를 셉니다. 히트맵은 ColorVariable 속성을 사용하지 않습니다. 이 값은 테이블 형식 데이터를 사용하고 ColorVariable 파라미터를 지정하지 않을 때 디폴트 값입니다.

테이블에서 세 번째 변수를 색 데이터에 사용하려면 ColorVariable 속성을 원하는 변수로 설정하고 ColorMethod 속성을 다음 표에 나와 있는 메서드 중 하나로 지정하십시오. x 값과 y 값의 각 쌍에 대해 아래 메서드는 소스 테이블의 ColorVariable 열에 있는 해당 값을 사용하여 데이터를 계산합니다.

메서드설명
'mean'평균 값을 계산합니다. ColorVariable 속성을 지정하면 이 값을 디폴트 값으로 가집니다.
'median'중앙값을 계산합니다.
'sum'값의 합을 구합니다.
'none'값을 그대로 사용합니다. 테이블에는 x 값과 y 값의 각 쌍이 하나만 포함될 수 있습니다. 이 값은 행렬 데이터를 사용할 때 디폴트 값입니다.

집계된 데이터의 행렬을 직접 계산하려면 accumarray 함수를 사용하십시오. 행렬을 heatmap 함수의 입력값으로 지정하십시오.

예: h = heatmap(__,'ColorMethod','median')

예: h.ColorMethod = 'median'

  • 히트맵의 데이터를 대화형 방식으로 살펴보려면 다음 옵션을 사용하십시오.

    • 확대/축소 — 스크롤 휠이나 + 키와 - 키를 사용하여 확대/축소합니다.

    • 패닝 — 히트맵을 클릭하여 끌어서 놓거나 화살표 키를 사용하여 행이나 열을 패닝합니다.

    • 데이터팁 — 히트맵 위에 커서를 올려놓으면 데이터팁이 표시됩니다.

    • 행과 열 재배열 — 행 레이블이나 열 레이블을 다른 위치로 이동하려면 클릭하여 끌어서 놓습니다.

    • 값 정렬 — 행 레이블이나 열 레이블 위에 커서를 올려놓으면 나타나는 아이콘을 클릭합니다. 한 번 클릭하면 값이 오름차순으로 정렬되고, 두 번 클릭하면 내림차순으로 정렬되고, 세 번 클릭하면 순서가 재설정됩니다.

R2017a에 개발됨