我想在纽约州的地图上绘制不同的位置。我当前的代码绘制了整个北美,因为我找不到如何只绘制一个州。我正在尝试为纽约州设置纬度和经度限制,但它仍然给了我整个国家。
此外,当我这样做hold all
(或hold on
)并尝试绘制点时,我会弹出另一个带有我指定的标题的图形,但只是一个空白的白色方块。
另一个相关的问题是,一旦我绘制了点,我必须知道它们是什么点。如果我在单独的单元格数组中有名称,我如何让 MATLAB 根据哪个坐标(存储在单独的列中)与哪个名称对应(如果名称存储在另一列中)来标记点?
%% Plot map
latlim = [39 47];
lonlim = [-81 -70];
ax = worldmap('USA');
load coast
geoshow(ax, lat, long,...
'DisplayType', 'polygon', 'FaceColor', [.45 .60 .30])
states = shaperead('usastatelo', 'UseGeoCoords', true, 'BoundingBox', [lonlim' latlim']);
axesm('lambert', 'MapLatLimit', latlim, 'MapLonLimit', lonlim);
faceColors = makesymbolspec('Polygon',...
{'INDEX', [1 numel(states)], 'FaceColor', ...
polcmap(numel(states))}); % NOTE - colors are random
geoshow(ax, states, 'DisplayType', 'polygon', ...
'SymbolSpec', faceColors);
figure('Color', 'white')
title('PM2.5 Site in New York State in 2012');
hold all
% Plot points
axesm('lambert', 'MapLatLimit', latlim', 'MapLonLimit', lonlim');
datalat = str2double(datalat);
datalon = str2double(datalon);
scatterm(datalat, datalon)