MATLAB 中的映射 - TVMap 样式(方框)

Mapping in MATLAB - TVMap style (square boxes)

我想制作 U.S 的地图。并在其上绘制网格单元。每个网格单元格都有一个数据值,并将用颜色条中的颜色填充。

在 IDL 中,也许在一个特殊的包中,我不确定,有一个名为 tvmap 的命令可以执行此操作。我不知道如何在 MATLAB 中复制它。

它应该是这样的:

我将 'lat' 和 'lon' 值作为一列数字。每对纬度和经度定义了一个框的中心。 'data' 变量包含应该进入该框的值。

这是我目前所拥有的。这部分只是创建了 U.S 的地图。和一个颜色条。我不知道如何将彩色网格映射到它上面。

figure(1);
ax = usamap('conus');
set(ax, 'units','normalized','outerposition',[0 0 1 1]); 
states = shaperead('usastatelo', 'UseGeoCoords', true,...
   'Selector',...
   {@(name) ~any(strcmp(name,{'Alaska','Hawaii'})), 'Name'});
geoshow(ax, states,'FaceColor', 'none', 'EdgeColor', [0.5 0.5 0.5])
framem off; gridm off; mlabel off; plabel off
set(gca,'Visible','on'); 

hold on

% Colorbar
caxis([10 80]);
h = colorbar('location', 'EastOutside');
ylabel(h,'MDA8 O_3');

% Title
title(['Correlation Between Monthly Mean Obs and Base Simulation in ', cell2mat(cellstr(years))]); % Title changes every daytitle(str);

我觉得

image

是您要查找的命令。

pcolorm(lat,lon,data) 就可以了。确保经纬度和数据大小相同。就地图而言,这意味着制作一个对应于每个数据点的纬度和经度值的矩阵。

结果(顶部绘制了点)如下所示: