How to add a legend for bar and line plot on one figure?

16 views (last 30 days)
I have a graph which represents 8 different variables (4 bars, 4 line graphs). I would like to add a legend with these 8 variables. But when I type:
legend('A','B','C','D','E','F','G');
all my variables are represented in legend as bars (using gray rectangle like data1-data4 in the image attached below).
When I use Figure>Insert>Legend then graphical representing of my variables is fine, but then I cannot change the description of variables which is as follow:
How to change description of data1-data8 or what should I change in my code to have my last 4 variables represented as lines (like in the image above)?

Answers (2)

Thorsten
Thorsten on 29 Sep 2015
x = rand(10, 4);
h(:, 1) = bar(x)
h(:, 2) = plot(x)
legend(h(:), {'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H'})

Sveinung Attestog
Sveinung Attestog on 13 Jan 2022
I guess for you this answer is coming way to late. But for others that might ask this question in the future. There is an example in Matalb help. Just type "help legend" in command window and you will find it or copy paste below. What you need to do is to define the plots as matlab variables. Then you use your chosen variable names for the plots as the inut in legend at the beginning insided [....].
Examples:
x = 0:.2:12;
Y = [besselj(1,x); besselj(2,x); besselj(3,x)];
plot(x,Y);
legend('First','Second','Third','Location','NorthEastOutside')
b = bar(rand(10,5),'stacked');
hold on
ln = plot(1:10,5*rand(10,1),'-o');
hold off
legend([b,ln],'Carrots','Peas','Peppers','Green Beans',...
'Cucumbers','Eggplant')

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!