MATLAB Answers


Legend issue: not all the entrties are shown.

Asked by Andrea Giordano on 7 Apr 2019
Latest activity Commented on by Walter Roberson
on 7 Apr 2019
Hello there,
I am having trouble with my legend.
I have single plot, and then I typed "hold on" and added a curve to my plot.
I cannot insert a correct legend though!
How is this possible?
Thank you in advance.
plot(linspace(0.03,0.3), poiseuille(linspace(0.03,0.3)),'k')
axis([0 0.3 0 12])
title('Velocity profiles for $\epsilon = 0.1$','Interpreter','latex',...
xlabel('$r$ [m]','Interpreter','latex','fontweight','bold','fontsize',20);
ylabel('$u=u(r,t=0)$ [m/s]','Interpreter','latex',...
leg_1 = legend('Poiseuille' );
hold on
plot(linspace(0.03,0.3), vel((1:100), 0),'color', [0.3 0.3 0.55])
leg_2 = legend( {'$\alpha = 0.1$'}, 'Interpreter','latex' );
hold on


Sign in to comment.

1 Answer

Answer by A. Sawas
on 7 Apr 2019
 Accepted Answer

You can only add one legend to the axis. So to solve your problem put all the names in one legend call. You may modify your code to do like this:
%leg_1 = legend('Poiseuille' );
% rest of your code
leg_2 = legend( {'Poiseuille', '$\alpha = 0.1$'}, 'Interpreter','latex' );
hold on

  1 Comment

Note that you will only get a single fontsize when you do this. You could include a \fontsize as part the latex code, but be aware that MATLAB might not include enough space between entries. It would probably be safer to 'Fontsize' the larger font, and \fontsize the other entries down to what they need.

Sign in to comment.