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

В этом примере показано, как создать 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')

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

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'})

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

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