0

ドットを配置したいcontourfmプロットがあります。Contourfm プロット自体は、エラーなしで正常に動作します。しかし、特定の点にドットを配置しようとすると、contourfm プロットが上書きされ、eqdconic の図がなく、緯度と経度の線が押しつぶされた白い背景にドットが配置されます。私は保留を使用しており、最初にデータをプロットし、最初にドットをプロットしようとしましたが、どちらも同じ結果になります。誰が私が間違っているのか教えてもらえますか? コマンドとして「プロット」を使用するべきではないと思います。

** 回答を反映するようにコードが修正されました。plot の代わりに plotm が使用されました。ドットの x 値と y 値は、MATLAB の緯度、経度の順序を反映するように切り替えられました (経度、緯度ではなく)。

% Eqdconic script    
    % Define figure and axes
    fg1 = figure(1);
    % set(fg1, 'paperposition', [0 0 8.5 8.5]);
    axesm('MapProjection','eqdconic', 'MapParallels', [], 'MapLatLimit',[-80 -60],'MapLonLimit',[190 250]) % 60-70S and 120-160W
    framem on; gridm on; mlabel on; plabel on; hold all;

    % Old code that was incorrect:
         % xValue = find(x(:,1) == 224); % Longitude closest to  136 03.56W
         % yValue = find(y(1,:) == -66.75); % Latitude closest to 66 39.67S
         % plot(xValue,yValue,'b.','MarkerSize',20);  % Plot a black dot

    % Plot dot    
    plotm(-66.75,224,'k.','MarkerSize',20); 

    hold on

    % Plot data
    frame = dataPoint(:,:,k);
    contourfm(y,x,frame, 'LineStyle', 'none');

    % Colorbar
    caxis([0 100]); 
    h = colorbar;
    ylabel(h,'Percent');

    % Title: Days 1:1258 inclusive. 20100101 to 20130611
    date = datenum(2009, 12, 31) + k; % Convert t into serial numbers
    str = datestr(date, 'mmm yyyy');
    title(str);
4

1 に答える 1

2

1

plotmの代わりに使用しplotます。

2

この行を置き換えます

plot(xValue,yValue,'b.','MarkerSize',20);  % Plot a black dot

plotm(x(xValue,1),y(1,yValue),'b.','MarkerSize',20);  % Plot a black dot

find値ではなく、見つかった要素のインデックスを返すことに注意してください。ただし、あなたの場合、実際に実際の値を渡すことができます

3

後で使用xValueしない場合yValueは、これらの行を削除できます

xValue = find(x(:,1) == 224); % Longitude closest to  136 03.56W
yValue = find(y(1,:) == -66.75); % Latitude closest to 66 39.67S

プロット線を次のように変更します

plotm(224,-66.75,'b.','MarkerSize',20);  % Plot a black dot

4

axesmただし、コマンドで言及した範囲と比較して緯度と経度が交換されるため、これはドットをプロットしません。しかし、あなたが使用contourfm(y,x)しているので、スワップする必要があると思いますので、プロット線は

plotm(-66.75,224,'b.','MarkerSize',20);  % Plot a black dot

5

'k.'青い点が表示されるので、代わりに を使用して色を黒に変更すると、次のように'b.'なります。

% Eqdconic script    
    % Define figure and axes
    fg1 = figure(1);
    % set(fg1, 'paperposition', [0 0 8.5 8.5]);
    axesm('MapProjection','eqdconic', 'MapParallels', [], 'MapLatLimit',[-80 -60],'MapLonLimit',[190 250]) % 60-70S and 120-160W
    framem on; gridm on; mlabel on; plabel on; hold all;
    plotm(-66.75,224,'k.','MarkerSize',20);  % Plot a black dot

生産する ここに画像の説明を入力

于 2013-07-05T16:13:03.540 に答える