Bar graph comparison with custom x-axis and text
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Sowmya MR
il 21 Gen 2018
Commentato: Star Strider
il 21 Gen 2018
Hi All,
I want to compare two vectors using bar graph with custom labels and a text on top of each bar. Can you please help me with this? Below is the code i tried:
y1=[[0.41 0.38 0.42]];
y2=[[0.63 0.75 0.81]];
x=1:3;
figure(1)
bar(x,[y1' y2'])
label1={'front1';'front2';'front3'};%%corresponds to y1
label2={'back1';'back2';'back3'};%%corresponds to y2
So basically, i want label1 and label2 in the x-axis and corresponding values of y1,y2 on top of the bar.
0 Commenti
Risposta accettata
Star Strider
il 21 Gen 2018
This will work for your two-variable problem:
y1=[[0.41 0.38 0.42]];
y2=[[0.63 0.75 0.81]];
x=1:3;
figure(1)
bar(x,[y1' y2'])
label1={'front1';'front2';'front3'};%%corresponds to y1
label2={'back1';'back2';'back3'};%%corresponds to y2
text(x, y1, label1, 'VerticalAlignment','bottom', 'HorizontalAlignment','right')
text(x, y2, label2, 'VerticalAlignment','bottom', 'HorizontalAlignment','left')
A more general approach:
labels = {label1; label2};
figure(1)
hBar = bar(x,[y1' y2']);
for k1 = 1:size(hBar,2)
ctr(k1,:) = bsxfun(@plus, hBar(1).XData, [hBar(k1).XOffset]');
ydt(k1,:) = hBar(k1).YData;
text(ctr(k1,:),ydt(k1,:), labels{k1}, 'HorizontalAlignment','center', 'VerticalAlignment','bottom')
end
4 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Migrate GUIDE Apps in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!