How to have 2 legend entries for 1 set of data using bar plot?
5 ビュー (過去 30 日間)
古いコメントを表示
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/148425/image.png)
0 件のコメント
採用された回答
Star Strider
2015 年 8 月 25 日
編集済み: Star Strider
2015 年 8 月 25 日
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.
2 件のコメント
Star Strider
2015 年 8 月 25 日
My pleasure.
Plotting two sets of bars requires the hold function, to be certain the second set of bars does not overplot the first set. I too had problems getting it to work as I wanted it to, thus the set call. (There are also version differences between R2014a and earlier, and R2014b and later, so I did my best to provide a ‘universal’ approach.)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Legend についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!