Legend option and numbering in boxes
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MINATI PATRA
am 23 Jul. 2021
Kommentiert: MINATI PATRA
am 24 Jul. 2021
y1 = [85 83 82 87; 81 79 84 86; 82 81 89 87; 89 85 87 80; 90 91 85 87];
figure(1), bar(y1,'stacked'); labels = arrayfun(@(value) [num2str(value,'%2.2f'),'%'],y1,'UniformOutput',false);
xticklabels({'NB','BLR','MLP','J48','CART'}); ylabel('\bfAccuracy in %','color','b');
ax = gca;darkGreen = [1,0,1]; ax.XColor = darkGreen; ax.XAxis.FontSize = 10; ax.YAxis.FontSize = 10; ax.FontWeight = 'bold'; hold off
legend({'2500 Dataset','5000 Dataset','7500 Dataset','10000 Dataset'}),legend boxoff
%% I need legend in 2X2 lines (i.e., 2 Rows & 2 Columns) AND values of y1 should be labled inside the corresponding box
0 Kommentare
Akzeptierte Antwort
Simon Chan
am 23 Jul. 2021
Try the following:
y1 = [85 83 82 87; 81 79 84 86; 82 81 89 87; 89 85 87 80; 90 91 85 87];
figure(1),
b = bar(y1,'stacked');
labels = arrayfun(@(value) [num2str(value,'%2.2f'),'%'],y1,'UniformOutput',false);
xticklabels({'NB','BLR','MLP','J48','CART'});
ylabel('\bfAccuracy in %','color','b');
%
for k = 1:4
xtips1 = b(k).XEndPoints;
ytips1 = b(k).YEndPoints;
labels1 = string(b(k).YData);
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',...
'VerticalAlignment','cap')
end
ax = gca;
darkGreen = [1,0,1];
ax.XColor = darkGreen;
ax.XAxis.FontSize = 10;
ax.YAxis.FontSize = 10;
ax.FontWeight = 'bold';
hold off
legend({'2500 Dataset','5000 Dataset','7500 Dataset','10000 Da,taset'},'NumColumns',2),legend boxoff
Weitere Antworten (1)
Yazan
am 23 Jul. 2021
You can define the number of columns in the legend object using the property NumColumns. Use the following:
legend({'2500 Dataset','5000 Dataset','7500 Dataset','10000 Dataset'}, 'NumColumns', 2, 'Box', 'off')
0 Kommentare
Siehe auch
Kategorien
Mehr zu Legend finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!