地图上的Matlab标签点

时间:2015-12-22 20:52:53

标签: matlab dictionary label geo points

我的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 个答案:

答案 0 :(得分:0)

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

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