Question
I created a boxplot and would like to add a legend to it, but when I call legend I get the following warning message and there is no legend in the plot figure: Warning: Plot empty. > In legend at 286 Is it possible to add a legend to a box plot? My code is: figure; colors = [1 0 0; 1 0 0; 0 0 1; 0 0.5 0; 0 0.5 0; 0 0.5 0]; x = boxplot(rand(100,6),'Colors',colors); legend('Group A','Group B','Group C')
Expert Answer
Prashant Kumar
PhD Expert
Answered Aug 24, 2026
Box plots in the Statistics Toolbox do not support legends as of release R2014a.
As a workaround you can explicitly pass to the "legend" function the handle to the axes in which the box plot is drawn:
figure;
colors = [1 0 0; 1 0 0; 0 0 1; 0 0.5 0; 0 0.5 0; 0 0.5 0];
x = boxplot(rand(100,6), 'Colors',colors);
% findall is used to find all the graphics objects with tag "box", i.e. the box plot
hLegend = legend(findall(gca,'Tag','Box'), {'Group A','Group B','Group C'});
Depending on the number of variables that you have, you might not obtain the right color for each legend element. Use the following trick to manually change the color of each legend element:
% Among the children of the legend, find the line elements
hChildren = findall(get(hLegend,'Children'), 'Type','Line');
% Set the horizontal lines to the right colors
set(hChildren(6),'Color',[1 0 0])
set(hChildren(4),'Color',[0 0 1])
set(hChildren(2),'Color',[0 0.5 0])
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related matlab Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →