How to decrease the font size of the values that are above each bar in the chart?

5 ビュー (過去 30 日間)
Juan David Parra Quintero
Juan David Parra Quintero 2023 年 7 月 28 日
編集済み: dpb 2023 年 8 月 1 日
I would like to know how to decrease the font size of the values that are above each bar in the chart. I would appreciate your answers. Attached is some code.
clf;
x4=categorical(["Ciclista"; "Material"; "Ocupante"; "Peatón"]);
y4 = [6 40 5; 1500 691 21; 0 307 4; 0 106 22];
b4=bar(x4,y4, 'FaceColor','flat');
cm = gray(5); % Define 'colormap'
for k = 1:numel(b3)
b4(k).CData = cm(k+1,:); % Loop To Set Colours
end
ylim([0 1900])
xtips4 = b4(1).XEndPoints;
ytips4 = b4(1).YEndPoints;
labels4 = string(b4(1).YData);
text(xtips4,ytips4,labels4,'HorizontalAlignment','center',...
'VerticalAlignment','bottom')
xtips4 = b4(2).XEndPoints;
ytips4 = b4(2).YEndPoints;
labels4 = string(b4(2).YData);
text(xtips4,ytips4,labels4,'HorizontalAlignment','center',...
'VerticalAlignment','bottom')
xtips4 = b4(3).XEndPoints;
ytips4 = b4(3).YEndPoints;
labels4 = string(b4(3).YData);
text(xtips4,ytips4,labels4,'HorizontalAlignment','center',...
'VerticalAlignment','bottom')
% legend('Accidente','Lesionado','Muerte')
legend({'Accidente','Lesionado','Muerte'},'Location','north','Orientation','horizontal')
legend('boxoff');
xlabel("Víctimas de accidentes");
ylabel("Número de víctimas");
txt = {'a)'};
text(200,335,0.56,txt, 'FontSize',14, 'FontName','Times New Roman');

回答 (1 件)

dpb
dpb 2023 年 7 月 29 日
編集済み: dpb 2023 年 8 月 1 日
FONTSIZE=8;
x4=categorical(["Ciclista"; "Material"; "Ocupante"; "Peatón"]);
y4 = [6 40 5; 1500 691 21; 0 307 4; 0 106 22];
b4=bar(x4,y4, 'FaceColor','flat');
cm = gray(5); % Define 'colormap'
set(b4,{'CData'},mat2cell(cm(2:4,:),ones(size(b4))))
ylim([0 1900])
hTxt=arrayfun(@(h)text(h.XEndPoints,h.YEndPoints,string(h.YData), ...
'Horizontal','center','Vertical','bottom','FontSize',FONTSIZE),b4,'UniformOutput',false);
% legend('Accidente','Lesionado','Muerte')
legend({'Accidente','Lesionado','Muerte'},'Location','north','Orientation','horizontal')
legend('boxoff');
xlabel("Víctimas de accidentes");
ylabel("Número de víctimas");
To set font size as variable up top, but primarily to illustrate how to set properties and the text objects using vectorized version of set and then with the implicit loop via arrayfun to do the annotations to reduce code bulk.

カテゴリ

Help Center および File ExchangeData Distribution Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by