Этот пример показывает, как создать 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