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

Географические пузырьковые диаграммы являются способом визуализировать данные, наложенные на карте. Для данных с географическими характеристиками эти графики могут обеспечить весьма необходимый контекст. В этом примере вы импортируете файл в 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 функция.

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

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

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

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

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

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

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

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

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

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

gb.SourceTable(33,12)
ans=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';

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

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

| | | | | |

Похожие темы