World map scatterm legend issue

2 views (last 30 days)
Quentin D
Quentin D on 14 Feb 2019
Answered: Amy Haskins on 20 Mar 2019
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!

Answers (1)

Amy Haskins
Amy Haskins on 20 Mar 2019
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.

Categories

Find more on Geographic Plots in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!