Matlab 在地图上标注点

Posted

技术标签:

【中文标题】Matlab 在地图上标注点【英文标题】:Matlab Label Points on Map 【发布时间】:2016-03-29 05:07:32 【问题描述】:

我的 Matlab 代码如下所示,根据我的输入文件和变量“prod”,我得到了一个漂亮的彩色点图,该变量是一个 10 x 1 变量,但对于本例来说可能是 prod = rand(10,1)。 “lat”和“lont”是纬度和经度值。我正在尝试绘制一个图例,显示所有 10 个条目以及包含所有 10 个条目的文本文件。使用下面显示的代码,我得到了一个图例,它为我提供了 10 个条目中的 1 个,在地图上具有相应的颜色点,但带有关于忽略“额外”图例条目的警告。我在文档和互联网上搜索了使用 scatterm 和大图例(我的实际数据是 >100 点)进行绘图的示例,但找不到任何有效的方法。提前感谢您的帮助!

prod = xlsread('J:\out.rms.err.xlsx', 'sheet1','C2:E182'); %open file
disp('finished reading input file');
[txt txt ] = xlsread('J:\out.rms.err.xlsx'); %
text = txt(2:end,1); %farms only
%figure; ax = worldmap('Spain');
lat = prod(:,2);
lon = prod(:,3); 
%xy = [ lat lon ];
colormap('hot');
ax = figure(1);
%ax = worldmap([40 45 ], [-11 5]); %Northern Spain
%ax = worldmap([35 40 ], [-11 5]); %Southern Spain
ax = worldmap([35 45 ], [-12 5] );
set(ax,'visible','off','units','normalized','outerposition',[0 0 1 1]);
land = shaperead('landareas.shp','UseGeoCoords',true);
geoshow(ax,land,'FaceColor', [0.15 0.5 0.15]);
colormap('hsv');
colorbar;
hold on;
hh = num2str(prod(:,1));
h(1) = scatterm(ax,lat,lon,20,prod(:,1),'filled');
legend(h,text,1);

【问题讨论】:

【参考方案1】:

scatterm 生成一个属于散点系列的图。对于这种类型的图表,只能使用一个符号(一个标记),默认类型是圆形 ('o')。图例对应于这个独特的符号。

但是,您可以通过 (i) 叠加多个图表 每个只有一个点,或 (ii) 创建您自己的图例 使用 patch 来绕过此限制示例(因此图例与数据断开连接 - 仅用作最终图形说明)

【讨论】:

以上是关于Matlab 在地图上标注点的主要内容,如果未能解决你的问题,请参考以下文章

怎样在地图上标注自己的店铺?

如何在百度地图上标注多个地点

怎样在高德地图上标记位置?

在地图上标记位置名称?

怎样在高德地图上标记自己公司的位置?

如何在百度地图上标注很多个点