Main Content

테이블 형식 데이터에서 거품 지리 차트 만들기

거품 지리 차트는 지도 상에 겹쳐진 데이터를 시각화하는 방법입니다. 지리적 특성을 포함하는 데이터의 경우, 이 차트는 이해를 돕도록 맥락을 제공할 수 있습니다. 이 예제에서는 파일을 테이블로 MATLAB®으로 가져와 테이블 변수(열)에서 거품 지리 차트를 만듭니다. 그런 다음, 테이블의 데이터를 사용하여 데이터의 특성을 시각화합니다(예: 인구 크기).

파일을 테이블로 가져오기

뉴잉글랜드의 카운티별 인구 및 라임병 발병 레코드를 포함한 표본 파일 counties.xlsx를 불러옵니다. readtable을 사용하여 데이터를 테이블로 읽어옵니다.

counties = readtable('counties.xlsx');

기본 거품 지리 차트 만들기

뉴잉글랜드의 카운티 위치를 보여주는 거품 지리 차트를 만듭니다. 테이블을 첫 번째 인수 counties로 지정합니다. 거품 지리 차트는 SourceTable 속성에 테이블을 저장합니다. 테이블의 'Latitude' 열과 'Longitude' 열을 사용하여 위치를 지정합니다. 그러면 차트가 데이터가 나타내는 지역만 포함하도록 기본 지도(바탕 지도)의 위도 제한과 경도 제한을 자동으로 설정합니다. 변수 gbGeographicBubbleChart 객체를 할당합니다. 이 객체가 생성된 후에 차트를 수정하려면 gb를 사용하십시오.

figure
gb = geobubble(counties,'Latitude','Longitude');

geobubble 함수로 표시되는 바탕 지도를 패닝하고 확대/축소할 수 있습니다.

차트에 카운티 인구 시각화하기

거품 크기(지름)를 사용하여 여러 카운티의 상대적 인구를 표시할 수 있습니다. 테이블의 Population2010 변수를 SizeVariable 파라미터의 값으로 지정합니다. 결과로 생기는 거품 지리 차트에서 인구를 표시하는 거품의 크기는 제각기 다릅니다. 차트에는 지름이 크기를 어떻게 표현하는지 보여주는 범례가 포함되어 있습니다. geolimits를 사용하여 차트의 제한을 조정합니다.

gb = geobubble(counties,'Latitude','Longitude',...
                        'SizeVariable','Population2010');
geolimits([39.50 47.17],[-74.94 -65.40])

geobubbleSizeLimits 속성으로 지정되는 범위 안의 값으로 거품 지름을 선형 배율로 스케일링합니다.

카운티별 라임병 발병 건수 시각화하기

거품 색을 사용하여 특정 연도에 기록된 한 카운티에서의 라임병 발병 건수를 표시할 수 있습니다. 이러한 유형의 데이터를 표시하려면, geobubble 함수에서 사용하는 데이터가 categorical형 값이어야 합니다. 처음에는, 테이블의 어떤 열도 categorical형이 아니지만 사용자가 새로 만들 수 있습니다. 예를 들어, discretize 함수를 사용하여 Cases2010 변수의 데이터에서 categorical형 변수를 만들 수 있습니다. Severity라는 새 변수는 데이터를 Low, Medium, High의 3가지 범주로 그룹화합니다. 이 새 변수를 ColorVariable 파라미터로 사용합니다. 이로 인해 SourceTable 속성에 저장된 테이블이 수정됩니다. 이 테이블은 작업 공간 counties에 있는 원본 테이블의 복사본입니다. GeographicBubbleChart 객체에 저장된 테이블을 변경하면 원래 데이터에 영향을 미치지 않도록 할 수 있습니다.

gb.SourceTable.Severity = discretize(counties.Cases2010,[0 50 100 500],...
                                 'categorical', {'Low', 'Medium', 'High'});
gb.ColorVariable = 'Severity';

정의되지 않은 데이터 처리하기

심각도(Severity) 정보를 플로팅하면 색 범례에 제4의 범주 undefined가 나타납니다. 이 범주는 사용자가 정의한 범주에서 categorical형으로 형변환한 데이터에 빈 값이나 범위를 벗어난 값이 있는 경우 나타날 수 있습니다. 정의되지 않은 거품 위로 커서를 이동하여 Severity에 이 undefined 값이 나타난 원인을 확인해 봅시다. 데이터팁은 거품이 라임병 테이블의 33번째 행에 있는 값을 나타낸다는 것을 보여줍니다.

Severity에 사용된 변수 Cases2010의 값을 확인해 보겠습니다. 이 변수는 라임병 테이블의 33번째 행에서 12번째 변수입니다.

gb.SourceTable(33,12)
ans=table
    Cases2010
    _________

       514   

High 범주는 100과 500 사이의 값으로 정의되었습니다. 그러나 Cases2010 변수의 값은 514입니다. undefined 값을 제거하려면 이 값을 포함하도록 High 범주의 상한을 재설정하십시오. 예를 들어, 5000으로 설정합니다.

gb.SourceTable.Severity = discretize(counties.Cases2010,[0 50 100 5000],...
                                 'categorical', {'Low', 'Medium', 'High'});

색 변수와 달리, geobubble은 크기, 위도 또는 경도 변수에서 정의되지 않은 숫자(NaN)를 발견하면 그 값을 무시합니다.

거품 색 선택하기

색 그라데이션을 사용하여 Low-Medium-High 분류를 나타냅니다. geobubble은 색을 BubbleColorList 속성에 m×3의 RGB 값 목록으로 저장합니다.

gb.BubbleColorList = autumn(3);

거품 색 다시 정렬하기

노란색 대신 빨간색으로 높은 심각도를 표시하도록 색을 변경하십시오. 색 순서를 변경하려면 BubbleColorList 속성에 나열된 범주나 색의 순서를 변경하면 됩니다. 예를 들어, 처음에는 범주가 Low-Medium-High 순서로 정렬되어 있습니다. reordercats 함수를 사용하여 범주를 High-Medium-Low로 변경하십시오. 그러면 색 범례에서 범주가 변경됩니다.

neworder = {'High','Medium','Low'};
gb.SourceTable.Severity = reordercats(gb.SourceTable.Severity,neworder);

제목 추가하기

크기 및 색 변수로 거품 지리 차트를 표시하는 경우, 상대적 크기와 색의 의미를 나타내기 위해 차트에 크기 범례와 색 범례가 표시됩니다. 테이블을 인수로 지정할 경우 geobubble이 자동으로 테이블 변수 이름을 범례 제목으로 사용하지만, 사용자가 속성을 사용하여 다른 제목을 지정할 수 있습니다.

title 'Lyme Disease in New England, 2010'
gb.SizeLegendTitle = 'County Population';
gb.ColorLegendTitle = 'Lyme Disease Severity';

차트 데이터 정제하기

라임병 데이터를 살펴보면 인구밀도가 높은 지역일수록 발병 사례가 더 많은 추세임을 알 수 있습니다. 1인당 발병 건수가 가장 많은 위치를 살펴보면 더 흥미로운 결과를 얻을 수 있을 것입니다. 1,000명당 발병 건수를 계산하여 차트에 표시해 보십시오.

gb.SourceTable.CasesPer1000 = gb.SourceTable.Cases2010 ./ ...
    gb.SourceTable.Population2010 * 1000;
gb.SizeVariable = 'CasesPer1000';
gb.SizeLegendTitle = 'Cases Per 1000';

그러면 거품 크기가 이전과는 다르게 표시됩니다. 인구가 가장 많은 지역의 심각도 수준이 비교적 다양하게 추적됩니다. 그러나 인구를 기준으로 정규화된 발병 건수를 살펴보면 1인당 최고 위험의 지리적 분포도가 다르게 나타납니다.

참고 항목

| | | | | |

관련 항목