Matlab 带有m_贴图投影的缺失点
我正在使用matlab中的m_map包生成一些值的全局映射 以下是一个例子:Matlab 带有m_贴图投影的缺失点,matlab,Matlab,我正在使用matlab中的m_map包生成一些值的全局映射 以下是一个例子: lat2 = [-54.54,-33.15,-8.64,-1.3,5.8,15.35,30.7,32.86,37.54,40.25,... 43.84,45.95,47.65,49.38,51.04,53.33,54.70,56.33,58.59,60.02,60.84,... 62.09,63.15,64.15,66.06]; lon2 = [-68.02,-52.84,26.39,33.22,37.
lat2 = [-54.54,-33.15,-8.64,-1.3,5.8,15.35,30.7,32.86,37.54,40.25,...
43.84,45.95,47.65,49.38,51.04,53.33,54.70,56.33,58.59,60.02,60.84,...
62.09,63.15,64.15,66.06];
lon2 = [-68.02,-52.84,26.39,33.22,37.54,-83.84,90.66,119.30,89.34,-121.19,...
-77.76,-60.83,9.2,-94.91,-90.8,-100.13,-97.58,-76.29,-112.08,-106.06,...
31.38,28.52,29.70,-108.45,30.97];
figure(1);
m_proj('Mollweide'); %clongitude, 0
m_coast('patch','k');
m_grid('xaxislocation','middle');
for i = 1:length(lat2);
m_line(lon2(i),lat2(i),'marker','o','markersize',4,'color','k','MarkerFaceColor','r');
end
figure(2);
m_proj('Mollweide','clongitude', 0);
m_coast('patch','k');
m_grid('xaxislocation','middle');
for i = 1:length(lat2);
m_line(lon2(i),lat2(i),'marker','o','markersize',4,'color','k','MarkerFaceColor','r');
end
在两个投影中使用完全相同的lat和lon值。为什么亚洲点没有出现在第一张地图上?只有当我不将0设置为图形的中心时,它们才会显示
如有任何建议,将不胜感激 这似乎是m_map的一个bug。问题似乎是180W以东不会有什么阴谋。因此,在您的第一张地图中:
m_plot(-175,-40,'r.') % this works
m_plot(175,-40,'r.') % this doesn't
但是
工作。请注意,如果您这样做,则会发生相反的情况
m_proj('Mollweide','clongitude', 240);
在后一种情况下,仅绘制亚洲的数据点
一个快速(但不是很好)的解决方法是将所有(+)经度点转换为(-)经度
p、 对于循环,您不需要这样做:
m_plot(lon2,lat2,'ko','markersize',4,'MarkerFaceColor','r');
m_plot(lon2,lat2,'ko','markersize',4,'MarkerFaceColor','r');