Why does legend command fail after boxplots with hold command?
조회 수: 4 (최근 30일)
이전 댓글 표시
Following the MATLAB legend documentation example , the following code excerpt issues the warning and erroneous image displayed in the screenshot. Why? How do I create a legend?
cm3tomm3 = 10^3;
datatoplot = ExtractLessData(height(data),newvoldata,'blurred','rectum');
figure
boxplot(cm3tomm3*datatoplot.Volumes,datatoplot.DoseInterval,...
'colors','b','BoxStyle','filled')
title('Dosed Rectal Volumes (mm^3) per Dose Interval (Gy(RBE))')
hold on
datatoplot = ExtractLessData(height(data),newvoldata,'planned','rectum');
boxplot(cm3tomm3*datatoplot.Volumes,datatoplot.DoseInterval,...
'colors','r')
hold off
legend('planned: red, outlined', 'blurred: blue, filled')
댓글 수: 0
답변 (1개)
Elizabeth Reese
2017년 11월 30일
Boxplots are groups of lines in the axes, so their legend functionality is limited. Mathworks' teams are aware of this and considering improving this in a future release.
You can still achieve this legend by saving the handles from the boxplots and then manually creating the legend.
For example:
load carsmall
% Make the plot
f = figure;
h1 = boxplot(MPG,Origin,'colors','b','BoxStyle','filled');
set(gca,'XTickLabel',{' '})
hold on
h2 = boxplot(gca,Acceleration,Origin,'colors','r');
hold off
% reset the axes limits to show the full boxplots
ylim([min(min(MPG),min(Acceleration)) max(max(MPG),max(Acceleration))])
legend([h1(2),h2(3)],'one, blue filled','two, red, outlined')
You will need to find which index in h1 and h2 correspond to lines in the box of your plot.
참고 항목
카테고리
Help Center 및 File Exchange에서 Legend에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!