How to adjust legend
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen

I would like to name all legends with a colored line, instead of only data1 and so on.
Furthermore i would like to exclude the legends with a triangle.
My code for the legend was:
legend('show')
2 Kommentare
Antworten (2)
Star Strider
am 10 Aug. 2021
I am not certain what you want, however the approach in Specify Legend Labels During Plotting Commands (using the 'DisplayName' name-value pair) could be appropriate.
.
10 Kommentare
Walter Roberson
am 11 Aug. 2021
plotHandles(k) = plot (level,vas,'color',C{k}, 'Linewidth',1,...
'DisplayName', 'Breaking Glass',...
'DisplayName', 'Car Horn',...
'DisplayName','Clapping');
Only the last 'DisplayName' option in a plot() call with have any effect, even if the call is generating multiple lines.
You also really only want a summary legend, not a legend for each subplot. The easiest way to handle that is to fake it.
%%%%% ---- Plot loudness --- %%%%%
% Build nested for loop that iterates through each subject with their
% corresponding sounds:
% Make new figure and place on screen Breite/Höhe
hFig = figure( 2 );
set( hFig, 'Position', [400, 300, 1250, 700], 'Name', 'Loudness Curves');
% Define papersize for export
set( hFig, 'paperunits','centimeters','Paperposition',[ 0 0 10 4])
% Set Names of subjects:
names = {'Subject 1 Old','Subject 2 Old','Subject 3 Young','Subject 4 Young',...
'Subject 5 Young','Subject 6 Young','Subject 7 Young','Subject 8 Young'};
% Set 14 different colors:
C = {'b',[0 0.4470 0.7410],[0.3010 0.7450 0.9330],'c',[0.6350 0.0780 0.1840],'r',[0.8500 0.3250 0.0980],...
[0.9290 0.6940 0.1250],'m','k','g',[0 0 .2],[0 .1 .4],[.1 .2 .3]};
for i = 1:length(fn_subjects)
subplot(3,4,i)
for k = 1:length(fn_sound)
sounds = (vas_cell{i,1}.loudness(k).Sound);
level = (vas_cell{i,1}.loudness(k).Intensity);
vas = (vas_cell{i,1}.loudness(k).VAS);
hold on
plot (level,vas,'color',C{k}, 'Linewidth',1);
title(names{i})
xlim([60 100])
xlabel('Level / dB SPL', 'FontSize', 12)
ylabel('Visual Analog Scale', 'FontSize', 12)
set(gca, 'FontSize', 12)
grid on
tone = AbsorbanceMEMR.(fn_subjects{i}).(fn_sound{k});
[FreqBand, Levels] = size(tone);
for j = 1:length(level)
maximum = max ( abs (tone(2:5,j)));
if maximum >= 0.03
plot(level(j), vas(j),'k^','MarkerSize',6)
end
end
end
sgtitle('Loudness')
end
for K = 1 : 3
plotHandles(K) = plot(nan,nan,'color', C{K});
end
lgd = legend(plotHandles, {'Breaking Glass','Car Horn','Clapping'});
lgd.Position(1) = 0.375;
lgd.Position(2) = 0.235;
lgd.NumColumns = 8;
title(lgd, 'Sounds')
Siehe auch
Kategorien
Find more on Title in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!