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')
댓글 수: 0
답변 (1개)
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:
For more details on marker specification, please refer this documentation link and and for legend refer this link.
Hope this helps!
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Legend에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!