Создайте карту плотности населения Choropleth

Этот пример показывает, как создать карту плотности населения для шести состояний Новой Англии в 2000 году.

Импорт граничных многоугольников США с низким разрешением состояния, установка пределов карты для области Новой Англии.

MapLatLimit = [41 48];
MapLonLimit = [-74 -66];

NEstates = shaperead('usastatelo', 'UseGeoCoords', true, ...
   'BoundingBox', [MapLonLimit' MapLatLimit']);

Настройте оси карты с проекцией, подходящей для отображения состояний Новой Англии.

axesm('MapProjection', 'eqaconic', 'MapParallels', [],...
  'MapLatLimit', MapLatLimit, 'MapLonLimit', MapLonLimit,...
  'GLineStyle', '-')
geoshow(NEstates, 'DisplayType', 'polygon', 'FaceColor','green')

Figure contains an axes. The axes contains 8 objects of type patch.

Определите максимальную плотность населения для состояний Новой Англии.

maxdensity = max([NEstates.PopDens2000])
maxdensity = 1.1345e+03

Создайте осеннюю палитру для шести состояний Новой Англии, а затем используйте flipud команда для инвертирования матрицы.

fall = flipud(autumn(numel(NEstates)));

Создайте структуру спецификации символов, symbolspec, который присваивает осенний цвет каждому многоугольнику в зависимости от плотности населения.

densityColors = makesymbolspec('Polygon', {'PopDens2000', ...
   [0 maxdensity], 'FaceColor', fall});

Отобразите карту.

geoshow(NEstates, 'DisplayType', 'polygon', ...
   'SymbolSpec', densityColors)
title ({'Population Density in New England in 2000', ...
   'in Persons per Square Mile'})

Figure contains an axes. The axes with title Population Density in New England in 2000 in Persons per Square Mile contains 16 objects of type patch.

Добавьте шкалу палитры. Можно также экспериментировать с другими палитрами.

caxis([0 maxdensity])
colormap(fall)
colorbar

Figure contains an axes. The axes with title Population Density in New England in 2000 in Persons per Square Mile contains 16 objects of type patch.