# Plotting multiple bar graphs

1,135 views (last 30 days)
Aftab Ahmed Khan on 20 Apr 2015
Answered: Al in St. Louis on 14 May 2019
Hi everyone, I am plotting 3 different bar graphs on a same figure window. I have managed up to this point, shown in the figure. I want them to be side by side not overlapping. Any help guys ?
figure(5);
hold on;
bar(xdata,bpcombine3,0.125,'FaceColor',[0,0,1],...
'EdgeColor',[0,0,1]);
bar(xdata,bpcombine2,0.25,'FaceColor',[0,1,0],...
'EdgeColor',[0,1,0]);
bar(xdata,bpcombine1,0.4,'FaceColor',[1,0,0]);
set(gca, 'XTick', 1:6, 'XTickLabel', labels);
title('Blocking Probability vs Routing Level');

Star Strider on 20 Apr 2015
Guessing here because I don’t have all your data, but I would do something like this:
bpcombined = [bpcombine1(:), bpcombine2(:), bpcombine3(:)];
hb = bar(xdata, bpcombined, 'grouped')
You can then change the colours by referring to the individual bar series using the ‘hb’ handle. (The (:) creates each vector as a column vector so the concatenation works correctly.)

Aftab Ahmed Khan on 20 Apr 2015
Hi, It is like this now. How can i change the colors to red, blue and green.
Star Strider on 20 Apr 2015
I’m using synthetic data for illustration and to test my code, but this should work:
data = [randi([1 3], 5, 1) randi([4 6], 5, 1) randi([4 6], 5, 1)];
figure(1)
hb = bar(data)
set(hb(1), 'FaceColor','r')
set(hb(2), 'FaceColor','b')
set(hb(3), 'FaceColor','g')
Wenbin Hou on 12 Jul 2017
The answer is 'Change properties for a specific bar series by indexing into the object array'(I am taking it from the help file).
Actually if you go to help document of 'bar', you will see this example:
y = [2 4 6; 3 4 5]; b = bar(y); Then if you want to change the color and width of the second column, you can do this: b(2).LineWidth = 2; b(2).EdgeColor = 'red';

Althaf V S on 8 Dec 2018
figure()
% NOT an efficeint way,......BUT GOOD way to control all the elements of bar chart
set(gcf,'color','white');
ca = categorical({'SP5#1','SP5#2','SP6#Part 1B','SP6#Part 1C'});
bar(ca(1),sp51bs)
hold on
bar(ca(2),sp52bs)
hold on
bar(ca(3),maxbssp6)
hold on
bar(ca(4),maxbssp6c)
title('PART D: Compare BASE SHEAR ');
legend('SP5#1','SP5#2','SP6#Part 1B','SP6#Part 1C');
ylabel('BASE SHEAR (Kips)');