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

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

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

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

       514   

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

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

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

Выберите пузырьковые цвета

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

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

Уточнение данных графика

Глядя на данные болезни Лайма, тренд, похоже, что больше случаев происходит в более густонаселенных районах. Более интересным может быть рассмотрение мест с наибольшим количеством случаев на душу населения. Рассчитать случаи на 1000 человек и отобразить их на графике.

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

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

См. также

| | | | | |

Похожие темы