Bar graph comparison with custom x-axis and text
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Star Strider
2018-1-21
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!