Search code examples
matlabfor-looplatexlegendmatlab-figure

Plot for loop legend with fraction


I am using MATLAB R2018b. I have a for loop plot. I am struggling with legend which has fraction in it.

My code and present output:

% Plot 
ColorVec = hsv(length(Phi));
markers = {'+','o','*','.','x','s','d','^','v','>','<','p','h'};
figure;
set(gca,'fontsize',24,'fontname','Times New Roman');
hold on;
for k = 1:length(Nse)
    for i=1:length(Iph)
             plot(V11(:),P(:),'-','color',ColorVec(i,:),'Linewidth',2.0);
    end
end
%%% Following for legend
Legend = cell(length(Phi),1);
 for iter=1:length(Phi)
   Legend{iter}=strcat(num2str(Phi(iter)),'\frac{W}{m^2},',num2str(round(Tc(iter))),' °C ');
 end
hl = legend(Legend);
set(hl ,'Interpreter','latex')
hold off

image


Solution

  • ° is not recognizable by Latex and the fraction should be enclosed inside $_____$. You should be using $^\circ$ for getting ° with the Latex Interpreter.

    i.e. instead of what you have in your loop, you should be having:

    Legend{iter}=strcat(num2str(Phi(iter)),'$\frac{W}{m^2}$,',...
        num2str(round(Tc(iter))),'$^\circ$C');
    

    or even simpler with the power of strings (instead of characters):

    Legend{iter} = Phi(iter) + "$\frac{W}{m^2}$," + round(Tc(iter)) + "$^\circ$C";
    

    Result*:

    * Ignore the colors