MATLAB: How to have 2 legend entries for 1 set of data using bar plot

barlegendMATLABplot

I have a bar plot with 1 set of data and I colorized the bars to highlight some differences after a threshold. Now I would like to have 2 entries in the legend but I cant figure out how to do that.
Matlab recognizes there is only 1 set of data and adds only 1 legend entry. Smart Matlab…
Is there a way to disable this to? Or another suggestions?
% test data
data = 1:10;
% bar plot
bar_h = bar(data);
% colorize bars
bar_child = get(bar_h,'Children');
% create custom color map
mycolor=[0 0 1;1 0 0]; %set colors
colormap(mycolor)
blue = 1*(data<8);
red = 2*(data>=8);
index = blue + red;
% apply colors
set(bar_child,'CData',index);
% legend
legend('blue','red')
edit: added a picture of what I mean

Best Answer

One possibility:
% test data
data = 1:10;
data1 = data(data<8);
data2 = data(data>=8);
% bar plot
bar_h1 = bar([1:7], data1,'b');
hold on
bar_h2 = bar([8:10], data2,'r');
hold off
set(gca, 'XTick',[1:10])
legend('blue','red', 'Location','NW')
I’m using R2015a, so can’t use your ‘bar_child’ and related data and calls. The set call for the 'XTick' values was necessary because without it the ticks for [8:10] don’t plot for some reason, even when specifically stating them in the bar call. Weird.
EDIT — Added 'Location' to legend call.