MATLAB: How to keep different colors for stacked bars in a multiple plot

barcombined plotMATLABstacked bar

I've combined two different plots in the same axes with "hold on": a normal graph and a bar graph with stacked bars. I would like to mantain different colors for each part of the single bars, but when I plot the figure the bars turn into the same color, even if still separated in different parts. For example:
x=1:10
y1=rand(1,10)
y2=rand(10)
figure
yyaxis left
plot(x,y1)
hold on
yyaxis right
bar(x,y2,'stacked')
How can I keep different colors for each part?
Thanks so much

Best Answer

You can apply color to the bar sections after plotting.
yyaxis right
bh = bar(x,y2,'stacked'); %save the handle!
colors = lines(length(bh)); %define colors
for i = 1:length(bh)
set(bh(i), 'FaceColor', colors(i,:))
end