How to create bar plot with groups x-axis labels

Hello,
I would like to create a bar plot with the labels in the x-axis grouped. This is what I have created in Excel. As you can see, the x-axis is grouped into
  • 90-min and 1-week, then
  • Theta and Gamma, then
  • Sham and Active
This grouping can be very helpful to avoid long labels. Thanks.

 채택된 답변

Alan Stevens
Alan Stevens 2020년 7월 8일

7 개 추천

Here's one way (there are almost certainly slicker ways!):
% Arbitrary data
x = 0:10:70;
y = [ 5 2 3 7 8 1 7 4];
% Labels
L1 = ["Sham" "Active"];
L2 = ["Theta" "Gamma"];
L3 = ["90-min" "1-week"];
% Positions for text
yp1 = -0.5*ones(size(x));
yp2 = 2*yp1;
yp3 = -1.5;
% Bar chart
bar(x,y)
set(gca,'Position',[0.13 0.2 0.775 0.775]); % Make space for labels
set(gca,'XTickLabel','') % Remove numbers
% Insert text labels
for i = 1:2:length(x)
text(x(i)-4, yp1(i), L1(1))
text(x(i+1)-4, yp1(i), L1(2))
end
for i = 1:4:length(x)
text(x(i), yp2(i), L2(1))
text(x(i+2), yp2(i), L2(2))
end
text(x(2), yp3, L3(1))
text(x(6), yp3, L3(2))
This resuts in:

댓글 수: 2

Fantastic. Thanks Alan. Very helpful.
+1, nicely done.
Also see the 'grouped' style for bar plots.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Annotations에 대해 자세히 알아보기

제품

질문:

2020년 7월 8일

댓글:

2020년 7월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by