Combine three different set bar graphs in one graph
Show older comments
I have three sets of bar graphs. How can I just place them on one graph with some spacing between each set and with each set having a different colour? three sets are: 1) vector_22=[000,001,010,011,100,101,110,111] leak_22=[5.33,5.46,4.45,4.47,4.41,3.90,4.36,3.71]; bar(leak_22); set(gca, 'xticklabel',{'000','001','010','011','100','101','110','111'}); text(1:length(leak_22),leak_22,num2str(leak_22'),'vert','bottom','horiz','center'); xlabel('Input Vector Applied'); ylabel('Leakage in nW');
2) vector_32=[000,001,010,011,100,101,110,111] leak_32=[4.46,4.50,3.69,3.67,3.63,3.24,3.63,3.17]; bar(leak_32); set(gca, 'xticklabel',{'000','001','010','011','100','101','110','111'}); text(1:length(leak_32),leak_32,num2str(leak_32'),'vert','bottom','horiz','center'); xlabel('Input Vector Applied'); ylabel('Leakage in nW');
3) vector_45=[000,001,010,011,100,101,110,111] leak_45=[3.65,3.69,3.04,3.0,2.98,2.69,2.99,2.66]; bar(leak_45); set(gca, 'xticklabel',{'000','001','010','011','100','101','110','111'}); text(1:length(leak_45),leak_45,num2str(leak_45'),'vert','bottom','horiz','center'); xlabel('Input Vector Applied') ylabel('Leakage in nW')
Answers (1)
M
on 27 Mar 2018
You can group your 3 bar graphs using something like this:
b=bar([leak_22;leak_32;leak_45]);
For your example, you will have 3 groups of 8 bars.
If you want 8 groups of 3 bars, use the transpose of your vectors.
You can then change the color of specific bar using:
b(1).FaceColor='blue';
You can also change the line style and others properties.
4 Comments
Prateek Gupta
on 27 Mar 2018
M
on 27 Mar 2018
But I want three groups of 8 bar.
This is what you should get using
b=bar([leak_22;leak_32;leak_45]);
You can modify color as I told you in my previous answer.
For label, you can still use xlabel command to print an global xlabel. To print a specific label for each 3 main groups, you can use:
l=categorical({'group1','group2','group3'});
b=bar(l,[leak_22;leak_32;leak_45]);
xlabel('Global x label');
Prateek Gupta
on 27 Mar 2018
M
on 28 Mar 2018
Try
leak_32=[4.46,4.50,3.69,3.67,3.63,3.24,3.63,3.17]'; leak_22=[5.33,5.46,4.45,4.47,4.41,3.90,4.36,3.71]'; leak_45=[3.65,3.69,3.04,3.0,2.98,2.69,2.99,2.66]'; b=bar3([leak_22 leak_32 leak_45]);
And see if it corresponds to your needs.
Categories
Find more on Bar Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!