首页 文章

Map 上的Matlab标签点

提问于
浏览
0

我有Matlab代码,如下所示,我根据输入文件和变量"prod"获得了一个很好的彩色点图,这是一个10 x 1变量,但对于这个例子可能是 prod = rand(10,1) . "lat"和"lont"是纬度和经度值 . 我显示如下,我得到一个图例,它给了我10个条目中的1个,在 Map 上有相应的颜色点,但有关于忽略"extra"图例条目的警告 . 我在文档和互联网上搜索了使用带有大量(我的实际数据> 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);

1 回答

  • 0

    scatterm 生成属于Scatter Series的图形 . 使用此类图形时,只能使用一个符号(一个标记),默认类型为圆形( 'o' ) . 图例对应于此独特符号 .

    但是,你可以通过(i) overlaying several graphs 每个只有一个点,或者(ii) create your own legend 使用 patch 来绕过这个限制(因此图例与数据断开连接 - 仅用作最终的图解说明)

相关问题