Main Content

테이블 형식 데이터에서 히트맵 생성하기

히트맵은 색을 사용하여 데이터를 시각화하는 한 방법입니다. heatmap 함수를 호출할 때, 집계되지 않은 데이터 또는 사전 집계된 데이터를 지정할 수 있습니다.

  • 집계되지 않은 데이터를 테이블 형식으로 지정할 경우 heatmap 함수는 데이터를 집계하여 그 집계 값을 나타내는 숫자와 색을 각 셀에 표시합니다. 예를 들어, 테이블 내에 각 (x, y) 쌍이 몇 개가 있는지 그 개수를 셀에 표시할 수 있습니다. x축과 y축의 레이블에는 테이블에 들어 있는 고유한 값들을 표시합니다.

  • 데이터를 2차원 행렬 형식으로 지정할 경우 heatmap 함수는 해당 값들을 집계된 데이터로 처리합니다. 행렬의 각 요소가 차트의 셀에 대응됩니다. 각 값이 행렬 내의 다른 값들에 비해 상대적으로 얼마나 크거나 작은지를 셀의 색으로 나타냅니다. 선택적으로, 차트의 x축과 y축에 표시되는 레이블을 지정할 수 있습니다.

이 항목에서는 파일을 MATLAB®에 테이블 형식으로 가져와서 테이블 열을 사용하여 히트맵을 생성하는 방법을 보여줍니다. 또한, 제목 및 축 레이블 설정 같이 히트맵의 모양을 수정하는 방법을 보여줍니다.

파일을 테이블로 가져오기

2015년 1월부터 2016년 7월까지의 평균 일일 온도가 포함된 표본 파일 TemperatureData.csv를 불러옵니다. 파일을 테이블로 읽어오고 처음 5개 행을 표시합니다.

tbl = readtable('TemperatureData.csv');
head(tbl,5)
    Year       Month       Day    TemperatureF
    ____    ___________    ___    ____________

    2015    {'January'}     1          23     
    2015    {'January'}     2          31     
    2015    {'January'}     3          25     
    2015    {'January'}     4          39     
    2015    {'January'}     5          29     

기본 히트맵 생성하기

x축에는 월을 표시하고 y축에는 연도를 표시하는 히트맵을 생성합니다. ColorVariable 속성을 설정하여 온도 데이터를 사용해 히트맵 셀의 색을 지정합니다. 변수 hHeatmapChart 객체를 할당합니다. 이 객체가 생성된 후에 차트를 수정하려면 h를 사용하십시오.

h = heatmap(tbl,'Month','Year','ColorVariable','TemperatureF');

기본적으로, MATLAB은 월별 평균 온도로 색 데이터를 계산합니다. 그러나 ColorMethod 속성을 설정하여 계산 방법을 변경할 수 있습니다.

축에 있는 값을 재정렬하기

축에 있는 값은 사전순으로 표시됩니다. 시간순으로 표시되도록 월을 재정렬합니다. categorical형 배열을 사용하거나 HeatmapChart 속성을 설정하여 레이블을 사용자 지정할 수 있습니다.

categorical형 배열을 사용하려면 먼저 테이블의 Month 열에 있는 데이터를 셀형 배열에서 categorical형 배열로 변경하십시오. 그런 다음, reordercats 함수를 사용하여 범주를 재정렬합니다. 작업 공간에 있는 테이블(tbl)이나 HeatmapChart 객체의 SourceTable 속성에 저장된 테이블(h.SourceTable)에 이러한 함수를 적용할 수 있습니다. 이러한 함수를 HeatmapChart 객체에 저장된 테이블에 적용하면 원래 데이터에 영향을 미치지 않도록 할 수 있습니다.

h.SourceTable.Month = categorical(h.SourceTable.Month);
neworder = {'January','February','March','April','May','June','July',...
    'August','September','October','November','December'};
h.SourceTable.Month = reordercats(h.SourceTable.Month,neworder);

이와 유사하게, categorical형 배열에 대해 addcats, removecats 또는 renamecats 함수를 사용하여 히트맵 레이블을 추가 또는 제거하거나 이름을 바꿀 수 있습니다.

또는 HeatmapChart 객체의 XDisplayDataYDisplayData 속성을 사용하여 한 축에 대한 값을 재정렬할 수 있습니다.

h.XDisplayData = {'January','February','March','April','May','June', ...
    'July','August','September','October','November','December'};

제목과 축 레이블 수정하기

테이블 형식 데이터를 사용하여 히트맵을 생성하면 히트맵에서 제목과 축 레이블이 자동으로 생성됩니다. HeatmapChart 객체의 Title, XLabel, YLabel 속성을 설정하여 제목과 축 레이블을 사용자 지정합니다. 예를 들어, 제목을 변경하고 x축 레이블을 제거합니다. 또한, 글꼴 크기를 변경합니다.

h.Title = 'Average Temperatures';
h.XLabel = '';
h.FontSize = 12;

누락된 데이터 셀의 모양 수정하기

2016년 8월부터 2016년 12월까지 데이터가 없으므로 해당 셀은 누락된 데이터로 표시됩니다. MissingDataColor 속성과 MissingDataLabel 속성을 사용하여 누락된 데이터 셀의 모양을 수정합니다.

h.MissingDataColor = [0.8 0.8 0.8];
h.MissingDataLabel = 'No Data';

컬러바 제거하기

ColorbarVisible 속성을 설정하여 컬러바를 제거합니다.

h.ColorbarVisible = 'off';

셀 텍스트 형식 지정하기

CellLabelFormat 속성을 설정하여 각 셀에 표시되는 텍스트 형식을 사용자 지정합니다. 예를 들어, 소수점 이하의 값 없이 텍스트를 표시합니다.

h.CellLabelFormat = '%.0f';

축에 있는 값 추가 또는 제거하기

XDisplayData 속성을 설정하여 분기별로 첫 번째 월만 표시합니다. YDisplayData 속성을 설정하여 y축에 2017년을 추가합니다. 이러한 속성을 각각 XData 또는 YData에 있는 값의 부분 집합, 상위 집합 또는 치환으로 설정합니다.

h.XDisplayData = {'January','April','July','October'};
h.YDisplayData = {'2015','2016','2017'};

2017년에 연결된 데이터가 없으므로 히트맵 셀은 누락된 데이터 색을 사용합니다.

참고 항목

함수

속성