World map scatterm legend issue

조회 수: 8(최근 30일)
Quentin D
Quentin D 2019년 2월 14일
답변: Amy Haskins 2019년 3월 20일
Hi everyone!
I'm trying to plot a range of location (deposits) on a world map through scatterm.
The size of the circle is proportionnal to 'Tonnage" and the color depends on "Type"
I managed to get the plot I want except that the legend is only showing one entry!
I get the following warning:
Warning: Ignoring extra legend entries.
> In legend>process_inputs (line 566)
In legend>make_legend (line 310)
In legend (line 261)
In Map (line 32)
[num, txt]= xlsread( 'Map.xlsx');
Name=txt(2:end,1);
Country=txt(2:end,2);
Type=txt(2:end,3);
Lat=num(:,1);
Long=num(:,2);
Tonnage=num(:,3);
worldmap world
geoshow('landareas.shp', 'FaceColor', [0.9 0.9 0.9]);
Area=10+400*rescale(Content);
[Types, ~, idx] = unique(Type);
num_groups = size(Types, 1);
cmap = jet(num_groups);
color=cmap(idx,:);
h=scatterm(Lat,Long,Area,color);
legend(h,Types);
I couldn't find a quick solution. If Iremove the handle "h" then the legend display the lines from the world map.
Any ideas?
Thanks!

답변(1개)

Amy Haskins
Amy Haskins 2019년 3월 20일
If you don't need a specific projection or additional overlays, I would recommend giving geobubble a try instead (introduced in R2017b). It's made for exactly this type of chart and will construct nice legends for you.
I think the alternative would be to filter your data set by type and generate the scatter plot for each type individually.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by