Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

heatmap

히트맵 차트 생성

  • Heatmap chart

설명

테이블 데이터

heatmap(tbl,xvar,yvar)은 테이블 tbl의 변수를 집계하여 히트맵을 만듭니다. xvaryvar를 시각화하고자 하는 테이블 변수로 지정하십시오. 셀의 숫자와 디폴트 색은 테이블에 함께 표시되는 각 (x, y) 쌍의 횟수에 대응합니다. 결과로 생성된 x축과 y축은 각각 xvar 변수와 yvar 변수의 고유한 값을 표시합니다.

예제

heatmap(tbl,xvar,yvar,'ColorVariable',cvar)cvar로 지정된 테이블 변수를 사용하여 셀의 숫자와 대응하는 색을 계산합니다. 디폴트 계산 방법은 평균 집계이기 때문에 테이블에 함께 표시되는 각 (x, y) 쌍에 대한 cvar의 평균값에 따라 셀의 숫자와 색이 결정됩니다.

예제

행렬 데이터

heatmap(cdata)는 사전 집계된 데이터가 포함된 2차원 행렬 cdata에서 히트맵을 만듭니다. 이 히트맵은 cdata의 값마다 하나의 셀을 갖습니다.

예제

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

예제

추가 옵션

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

예제

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

h = heatmap(___)HeatmapChart 객체를 반환합니다. 차트를 생성한 후에 속성을 수정하려면 h를 사용하십시오. 속성 목록은 HeatmapChart 속성를 참조하십시오.

예제

모두 축소

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

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';

R2023b 이후

제목, 축 레이블 또는 데이터팁에 LaTeX(또는 TeX) 마크업을 사용하려면 HeatmapChart 객체의 Interpreter 속성을 설정합니다.

예를 들어, LaTeX을 사용하여 그리스 문자를 표시하는 제목이 있는 히트맵 차트를 만들어 보겠습니다. 차트를 만들 때 Interpreter 속성을 "latex"으로 설정합니다. 그런 다음 title 함수를 호출할 때 마크업을 포함시킵니다.

heatmap(randi(100,5,3),Interpreter="latex")
title("$\hat{\psi_1}$ Values for ${1\le\alpha\le3}$")

히트맵을 만들고 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';

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

샘플 파일 TemperatureData.csv를 테이블로 읽어옵니다. 이 파일에는 Year, Month, Day, TemperatureF와 같은 4개 열이 포함되어 있습니다.

tbl = readtable('TemperatureData.csv');

pivot 함수를 사용하여 월과 연도의 각 조합에 대한 색 데이터를 최대 온도 형태로 계산합니다. 누락된 월과 연도 조합에는 NaN을 사용합니다.

P = pivot(tbl,Columns="Month",Rows="Year",DataVariable="TemperatureF",Method=@(x) mean(x,"includenan"))
P=2×13 table
    Year    April     August    December    February    January     July      June     March      May      November    October    September
    ____    ______    ______    ________    ________    _______    ______    ______    ______    ______    ________    _______    _________

    2015    43.267    69.903     40.548      15.448     21.355     69.161    59.967    28.484    57.548      43.8      49.323      64.467  
    2016    42.267       NaN        NaN      29.966      27.71     68.824    63.733    37.806    53.806       NaN         NaN         NaN  

피벗 테이블에 있는 변수를 재배열합니다.

P = P(:,["Year" "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December"]);

히트맵을 만들고, 계산된 데이터 값을 사용하여 히트맵 셀에 색을 채웁니다.

xvar = P.Properties.VariableNames(2:end);
yvar = string(P.(1));
cvar = P{:,2:end};
heatmap(xvar,yvar,cvar)
title("Maximum Temperatures (F)")

Figure contains an object of type heatmap. The chart of type heatmap has title Maximum Temperatures (F).

히트맵 차트는 기본적으로 sky 컬러맵의 256샘플링을 사용합니다. Colormap 이름-값 인수를 지정하여 샘플링을 변경할 수 있습니다.

예를 들어, 2×1 타일 형식 차트 레이아웃에 두 개의 히트맵 차트를 만들어 보겠습니다. 위쪽 차트는 디폴트 256색 집합을 사용하고 아래쪽 차트는 2개의 색만 사용합니다.

tiledlayout(2,1,TileSpacing="compact")

% Top chart with default colors
nexttile
heatmap(magic(10))

% Bottom chart with two colors
nexttile
heatmap(magic(10),Colormap=sky(2))

입력 인수

모두 축소

소스 테이블로, 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')'Gender'라는 이름의 변수를 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, TiledChartLayout 또는 GridLayout 객체로 지정됩니다.

이름-값 인수

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

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

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

참고

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

차트 제목으로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 배열 또는 categorical형 배열로 지정됩니다.

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

예: h.Title = 'My Title Text';

여러 줄로 된 제목을 만들려면 문자형 벡터로 구성된 셀형 배열 또는 string형 배열을 지정하십시오. 배열 내 각 요소는 텍스트의 한 줄에 해당합니다.

예: h.Title = {'My','Title'};

제목을 categorical형 배열로 지정할 경우 MATLAB®은 배열의 범주가 아닌 배열의 값을 사용합니다.

테이블 형식 데이터를 사용하여 차트를 만드는 경우 디폴트 차트의 제목이 자동 생성됩니다. 제목을 만들지 않으려면 ''를 지정하십시오.

기본적으로 히트맵은 사용자가 지정한 텍스트에 대해 TeX 마크업 중 일부를 사용할 수 있도록 지원합니다. TeX 마크업을 사용하여 위 첨자와 아래 첨자를 추가하고, 글꼴 유형과 색을 수정하며, 텍스트에 특수 문자를 포함시킬 수 있습니다. 일반 텍스트에서 밑줄(_)과 같은 TeX 마크업 문자를 사용하려면 포함하려는 문자 앞에 백슬래시(\)를 삽입하십시오. 백슬래시는 TeX 이스케이프 문자입니다. 자세한 내용은 text 객체의 Interpreter 속성을 참조하십시오.

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

테이블에서 세 번째 변수를 색 데이터에 사용하지 않으려면 메서드를 'count'로 지정하십시오. 메서드가 'count'인 경우 히트맵은 ColorVariable 속성을 사용하지 않으며 대신 x 값과 y 값의 각 쌍이 소스 테이블에 표시되는 횟수를 셉니다. 이 값은 테이블 형식 데이터를 사용하고 ColorVariable 파라미터를 지정하지 않을 때 디폴트 값입니다.

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

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

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

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

예: h.ColorMethod = 'median'

출력 인수

모두 축소

HeatmapChart 객체입니다. 이 객체는 독립형 시각화입니다. 히트맵 차트를 만든 후에 h를 사용하여 속성을 설정합니다.

세부 정보

모두 축소

독립형 시각화

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

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

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

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

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

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

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

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

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

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

  • 테이블에서 히트맵 차트를 만든 경우 데이터팁을 사용자 지정할 수 있습니다.

    • 데이터팁에서 행을 추가하거나 제거하려면 차트의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 데이터팁 수정을 가리키십시오. 그런 다음 변수를 선택하거나 선택 취소합니다.

    • 여러 행을 추가하거나 제거하려면 차트를 마우스 오른쪽 버튼으로 클릭하고 데이터팁 수정을 가리킨 다음 더 보기를 선택하십시오. 그런 다음 >> 버튼을 클릭하여 변수를 추가하거나 << 버튼을 클릭하여 제거합니다.

버전 내역

R2017a에 개발됨

모두 확장