4

ニューヨーク州の地図にさまざまな場所をプロットしたいと考えています。現在のコードでは、1 つの州だけをプロットする方法が見つからなかったため、北米全体をプロットしています。緯度と経度の制限をニューヨーク州に設定しようとしていますが、それでも国全体が表示されます。

さらに、hold all(またはhold on) を実行して点をプロットしようとすると、指定したタイトルでポップアップする別の図が表示されますが、空白の白い四角だけです。

関連するもう 1 つの質問は、ポイントをプロットしたら、それらがどのポイントであるかを知る必要があるということです。別のセル配列に名前がある場合、どの座標 (別の列に格納されている) がどの名前 (名前がさらに別の列に格納されている場合) に対応するかに基づいて、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)
4

1 に答える 1

3

で米国州の地図を取得しusamap('New York')、 でオーバーレイ テキストをプロットできますtextm。ここでは、25 のランダムな点とそのラベルが Figure にプロットされます。

次のプロット

ここに画像の説明を入力

によって生成されます

latlim = [39 47];
lonlim = [-81 -70];

figure('Color','w');
usamap('New York')
shi = shaperead('usastatehi', 'UseGeoCoords', true,...
            'Selector',{@(name) strcmpi(name,'New York'), 'Name'});
geoshow(shi, 'FaceColor', [0.3 1.0, 0.675])
textm(shi.LabelLat, shi.LabelLon, shi.Name, 'HorizontalAlignment', 'center')

nb_point = 25;
LAT = latlim(1) + (latlim(2)-latlim(1)).*rand(nb_point,1);
LON = lonlim(1) + (lonlim(2)-lonlim(1)).*rand(nb_point,1);
h = geoshow(LAT, LON, 'DisplayType', 'Point', 'Marker', '+', 'Color', 'red');
textm(LAT, LON+0.3, num2str((1:nb_point)'), 'FontSize',14)
于 2013-10-09T22:56:45.740 に答える