MATLAB中的映射 - TVMap风格(方框)

时间:2015-12-14 14:16:18

标签: matlab mapping

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

在IDL中,也许在一个特殊的包中,我不确定,有一个名为tvmap的命令可以做到这一点。我不知道如何在MATLAB中复制它。

它应该是这样的:

Map of U.S. with data in each model box

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

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

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);

2 个答案:

答案 0 :(得分:0)

我认为

image

是您要查找的命令。

答案 1 :(得分:0)

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

结果(点在顶部绘制)如下所示: enter image description here