MATLAB: Changing bar graph bar colors

bar graphcolorsMATLAB

I have a bar graph that creates 4 different bars. I want the first bar to be colored black, the second blue, the third green, and the fourth red. How do I achieve this?
Thanks

Best Answer

By default, all the bars in a bar graph are part of the same patch object, and therefore are the same color. To get different colors, you need to plot each bar as its own object.
x = 1:4;
y = rand(1,4);
h = bar(x, diag(y), length(y));
set(h, {'facecolor'}, {'k','b','g','r'}');
or
h = bar(x, diag(y), 'stacked');
set(h, {'facecolor'}, {'k','b','g','r'}');