Создание географической пузырьковой диаграммы из табличных данных

Географические пузырьковые диаграммы являются способом визуализировать данные, наложенные на карте. Для данных с географическими характеристиками эти графики могут обеспечить весьма необходимый контекст. В этом примере вы импортируете файл в MATLAB® как таблица и создаете географическую пузырьковую диаграмму из табличных переменных (столбцы). Затем вы работаете с данными в таблице, чтобы визуализировать аспекты данных, таких как численность населения.

Импорт файла как таблица

Загрузите файл примера counties.xlsx, который содержит записи населения и случаев болезни Лайма графством в Новой Англии. Считайте данные в таблицу с помощью readtable.

counties = readtable('counties.xlsx');

Создание основной географической пузырьковой диаграммы

Создайте географическую пузырьковую диаграмму, которая показывает местоположения округов в Новой Англии. Задайте таблицу в качестве первого аргумента, counties. Географическая пузырьковая диаграмма хранит таблицу в своем свойстве SourceTable. Пример отображает первые пять строк таблицы. Используйте 'Latitude' и столбцы 'Longitude' таблицы, чтобы задать местоположения. График автоматически устанавливает пределы широты и долготы базовой карты, названной основной картой, чтобы включать только те области, представленные по условию. Присвойте объект GeographicBubbleChart переменному gb. Используйте gb, чтобы изменить график после того, как это будет создано.

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

head(gb.SourceTable, 5)
ans=5×19 table
    FIPS     ANSICODE     Latitude    Longitude        CountyName         State      StateName      Population2010    HousingUnits2010     LandArea     WaterArea     Cases2010    Cases2011    Cases2012    Cases2013    Cases2014    Cases2015    Cases2014_1    Cases2015_1
    ____    __________    ________    _________    ___________________    _____    _____________    ______________    ________________    __________    __________    _________    _________    _________    _________    _________    _________    ___________    ___________
    9001    2.1279e+05     41.228      -73.367     'Fairfield County'     'CT'     'Connecticut'      9.1683e+05         3.6122e+05       1.6185e+09    5.4916e+08       331          305          225          443          437          427           437            427    
    9003    2.1234e+05     41.806      -72.733     'Hartford County'      'CT'     'Connecticut'      8.9401e+05         3.7425e+05       1.9039e+09    4.0213e+07       187          167          143          288          291          335           291            335    
    9005     2.128e+05     41.792      -73.235     'Litchfield County'    'CT'     'Connecticut'      1.8993e+05              87550       2.3842e+09    6.2166e+07        88          118           67          187          168          202           168            202    
    9007     2.128e+05     41.435      -72.524     'Middlesex County'     'CT'     'Connecticut'      1.6568e+05              74837       9.5649e+08    1.8068e+08       125          109           93          181          155          241           155            241    
    9009     2.128e+05      41.35        -72.9     'New Haven County'     'CT'     'Connecticut'      8.6248e+05           3.62e+05       1.5657e+09    6.6705e+08       240          249          213          388          459          474           459            474    

Можно панорамировать и увеличить и уменьшить масштаб на основной карте, отображенной функцией geobubble. geobubble отображает данные по основной карте по умолчанию. Чтобы использовать другую основную карту, у вас должно быть Интернет-соединение, или вы, должно быть, ранее загрузили basemaps с MathWorks.

Визуализация населения графства на графике

Используйте пузырьковый размер (диаметр), чтобы указать на относительное население различных округов. Задайте переменную Population2010 в таблице как значение параметра SizeVariable. В результирующей географической пузырьковой диаграмме пузыри имеют различные размеры, чтобы указать на население. График включает легенду, которая описывает, как диаметр выражает размер.

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

geobubble масштабирует диаметры пузыря линейно между значениями, заданными свойством SizeLimits.

Визуализация случаев болезни Лайма графством

Используйте пузырьковый цвет, чтобы показать количество случаев болезни Лайма в графстве в течение данного года. Чтобы отобразить этот тип данных, функция geobubble требует, чтобы данные были значением categorical. Первоначально, ни один из столбцов в таблице не является категориальным, но можно создать тот. Например, можно использовать функцию discretize, чтобы создать категориальную переменную из данных в переменной Cases2010. Новая переменная, именованная Серьезность, группирует данные в три категории: Низко, Носитель, и Высоко. Используйте эту новую переменную в качестве параметра ColorVariable. Эти изменения изменяют таблицу, хранимую в свойстве SourceTable, которое является копией исходной таблицы в рабочей области, counties. Внесение изменений в таблицу, хранимую в объекте GeographicBubbleChart старается не влиять на исходные данные.

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

Обработка неопределенных данных

Когда вы строите график информации о серьезности, четвертая категория появляется в цветной легенде: undefined. Эта категория может появиться, когда данные, которые вы бросаете к categorical, содержат пустые значения или значения, которые являются вне осциллографа для категорий, которые вы задали. Чтобы определить, что вызвало это неопределенное значение Серьезности, просмотрите совет данных для неопределенного пузыря. Вы видите, что это представляет значения в 33-й строке таблицы болезни Лайма.

Проверьте значение переменной, используемой для Серьезности, Cases2010, который является 12-й переменной в 33-й строке таблицы болезни Лайма.

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

Категория High задана как значения между 100 и 500. Однако значение переменной Cases2010 514. Чтобы устранить это неопределенное значение, сбросьте верхний предел Высокой категории, чтобы включать это значение. Например, используйте 5000.

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

В отличие от цветной переменной, когда geobubble сталкивается с неопределенным номером (NaN) в размере, широте или переменных долготы, это игнорирует значение.

Выбор Bubble Colors

Используйте цветовой градиент, чтобы представлять Низкую Среднюю Высокую классификацию. geobubble хранит цвета как m-3 список значений RGB в свойстве BubbleColorList.

gb.BubbleColorList = autumn(3);

Переупорядочение пузырьковых цветов

Измените цвет, указывающий на высокую серьезность, чтобы быть красными, а не желтыми. Чтобы изменить последовательность цветов, можно изменить упорядоченное расположение или категорий или цветов, перечисленных в свойстве BubbleColorList. Например, первоначально категории заказаны "Низкий Носитель Высоко". Используйте функцию reordercats, чтобы изменить категории на "Высокий Носитель Низко". Категории изменяются в цветной легенде.

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 000 человек и отобразите его на графике.

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

Пузырьковые размеры теперь рассказывают другую историю, чем прежде. Области с самым многочисленным населением, прослеженным относительно хорошо с различными уровнями серьезности. Однако при рассмотрении количества случаев, нормализованных населением, кажется, что самый высокий риск на душу населения имеет различное географическое распределение.

Смотрите также

| | | | | |

Похожие темы

Была ли эта тема полезной?