How do I make a legend for my geoshow function?

9 次查看(过去 30 天)
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')

回答(1 个)

Payas Bahade
Payas Bahade 2019-11-25
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!

类别

Help CenterFile Exchange 中查找有关 Legend 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by