How do I make a legend for my geoshow function?

10 vues (au cours des 30 derniers jours)
Nathan Nguyen
Nathan Nguyen le 22 Nov 2019
Hello,
I've never used MATLAB's create a map feature before. Matter of fact, I just found out MATLAB could even do that today!
Anyways, I'm trying to make a map for my class,and I'm able to create a map of the state of Arizona. Now I would like to add "markers" onto my map of Arizona to represent different forms of renewable energy. So an empty circle can represent solar, diamond can be water and so on. I found a code that I used tha created a marker, but it's a default + sign. How do I change that? Whenever I tried to do 'o' or 'd' I get an error.
Also, I'd like to create a legend for my map as well that says this symbol represents this source. So for my + I have on the map, how would I create a legend that says + = solar ?
I really have no expierence with this. I've included what I have so far below.
Thank you!
close all, clear all, clc;
figure ()
usamap('Arizona')
arizonahi = shaperead('usastatehi', 'UseGeoCoords', true,...
'Selector',{@(name) strcmpi(name,'Arizona'), 'Name'});
geoshow(arizonahi, 'FaceColor', [0.3 1.0, 0.675])
lat = [36];
lon = [-110];
% textm(arizonahi.LabelLat, arizonahi.LabelLon, arizonahi.Name,...
% 'HorizontalAlignment', 'center')
geoshow(lat,lon, 'DisplayType', 'point', 'MarkerEdgeColor', 'b', 'Linewidth', 2)
legend('geoshow')

Réponses (1)

Payas Bahade
Payas Bahade le 25 Nov 2019
Hi Nathan,
I have written a below mentioned code which addresses your adding marker and legend requirement:
close all; clear all; clc;
figure ()
usamap('Arizona')
arizonahi = shaperead('usastatehi', 'UseGeoCoords', true,...
'Selector',{@(name) strcmpi(name,'Arizona'), 'Name'});
h(1) = geoshow(arizonahi, 'FaceColor', [0.3 1.0, 0.675]);
lat = [36 34 32];% defining lattitude
lon = [-110 -112 -112];% defining longitude
h(2) = geoshow(lat(1),lon(1), 'DisplayType', 'point','Marker','o', 'MarkerEdgeColor', 'b', 'Linewidth', 2);% specifying sample marker 1
h(3) = geoshow(lat(2),lon(2), 'DisplayType', 'point','Marker','d', 'MarkerEdgeColor', 'r', 'Linewidth', 2);% specifying sample marker 2
h(4) = geoshow(lat(3),lon(3), 'DisplayType', 'point','Marker','s', 'MarkerEdgeColor', 'k', 'Linewidth', 2);% specifying sample marker 3
legend([h(2),h(3),h(4)],'Solar','Water','Wind');% plotting legend
Output:
figuregeoplot.PNG
For more details on marker specification, please refer this documentation link and and for legend refer this link.
Hope this helps!

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by