Why does legend command fail after boxplots with hold command?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Elizabeth Reese
el 30 de Nov. de 2017
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.
1 comentario
Ver también
Categorías
Más información sobre Legend en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!