Matlab在地图上标注点

Matlab在地图上标注点,matlab,dictionary,label,geo,points,Matlab,Dictionary,Label,Geo,Points,我有下面这样的Matlab代码,根据我的输入文件和变量“prod”,我得到了一个彩色点的很好的绘图,这是一个10 x 1的变量,但在这个例子中可以是prod=rand(10,1)。“lat”和“lont”是纬度和经度值。我试图用包含所有10个条目的文本文件绘制一个显示所有10个条目的图例。通过下面显示的代码,我得到了一个图例,其中10个条目中的1个条目在地图上有相应的颜色点,但有一个关于忽略“额外”图例条目的警告。我在文档和互联网上搜索了使用带有大型(我的实际数据大于100点)图例的scatte

我有下面这样的Matlab代码,根据我的输入文件和变量“prod”,我得到了一个彩色点的很好的绘图,这是一个10 x 1的变量,但在这个例子中可以是
prod=rand(10,1)
。“lat”和“lont”是纬度和经度值。我试图用包含所有10个条目的文本文件绘制一个显示所有10个条目的图例。通过下面显示的代码,我得到了一个图例,其中10个条目中的1个条目在地图上有相应的颜色点,但有一个关于忽略“额外”图例条目的警告。我在文档和互联网上搜索了使用带有大型(我的实际数据大于100点)图例的
scatterm
绘图示例,但找不到任何有效的方法。提前感谢您的帮助

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

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

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