strange for useing ' legend'

1 view (last 30 days)
xinjie zhang
xinjie zhang on 11 Mar 2011
Dear, I used the following code to draw a figure. But the 'legend' didn't work well .I have used similar code for all drawing figures ,only for one didn't work. Please give me a hand! I really appreciate your help!
Best! xinjie
% % clear clc linestr={'ko','y*','rh','bs','K-','y-','r-','b-','g-','k--p','b--o','y--s','g--*','r--d','g-.h','g-.p'}; % linestr={'k-o','b-s','y-*','g-d','r-h','k-.o','b-.s','y-.*','g-.d','r-.h','k--p','b--o','y--s','g--*','r--d','g-.h','g-.p'}; linewidth = 1.5; data1=importdata('test.txt'); Data1=data1(:,[1:3,5]); [M,N]=size(Data1); current=ones(M,1)*[0 0.3,0.5,1]; frequency=[1,5:5:50]'*ones(1,N); amplitude1=ones(size(Data1)).*(0.02).*25.4./1000; gap1=ones(size(Data1)).*(0.1).*25.4./1000;
a=[ 198.7269 79.7653 -0.1376 23.8147 158.7006 0.6516];
Y1=(a(1).*current.^2+a(2).*current+a(3))./(2.*pi^2.*frequency.*amplitude1)./(a(5).*gap1+a(6))+a(4);
h=figure(1); for i=1:4 plot(frequency,Data1(:,i),linestr{i},'linewidth',linewidth); hold on plot(frequency,Y1(:,i),linestr{i+4},'linewidth',linewidth);
end LegednStr={'0.0Amps Test','0.0Amps Simulation ','0.3Amps Test','0.3Amps Simulation ','0.5Amps Test','0.5Amps Simulation ','1.0Amps Test','1.0Amps Simulation '}; titlestr=''; xLabelStr='test1'; yLabelStr='test2'; figName='test1';
setPlot(xLabelStr, yLabelStr,titlestr, LegednStr, figName);
%====
function setPlot(xLabelStr, yLabelStr,titlestr, LegednStr, figName) % % fig setting % % instructions of the interface£º % % xLabelStr£ºX_axis name str % % yLabelStr y_axis name str % % LegendStr£ºthe legend % % figName£º fig name box off;grid on; xlabel(xLabelStr, 'fontsize', 14, 'fontweight', 'bold'); ylabel(yLabelStr, 'fontsize', 14, 'fontweight', 'bold'); title(titlestr, 'fontsize', 14, 'fontweight', 'bold'); legend(LegednStr,0);legend boxoff; set(legend,'FontSize',14); set(gca,'LineWidth',1.5,'FontSize',14); Position = [0 0 793*2/3 596*2/3]; set(gcf,'position',Position) saveas(gcf, figName,'jpg'); end
  1 Comment
Matt Fig
Matt Fig on 11 Mar 2011
You should use the "Code" format button to make that readable.

Sign in to comment.

Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 15 Jun 2021
With this syntax on legend settings, it is working ok.
close all; clear all;
...
...
titlestr=''; xLabelStr='test1'; yLabelStr='test2'; figName='test1';
setPlot(xLabelStr, yLabelStr,titlestr, LegednStr, figName);
...
%====
function setPlot(xLabelStr, yLabelStr,titlestr, LegednStr, figName)
% % fig setting % % instructions of the interface£º % %
box off;grid on;
xlabel(xLabelStr, 'fontsize', 14, 'fontweight', 'bold');
ylabel(yLabelStr, 'fontsize', 14, 'fontweight', 'bold');
title(titlestr, 'fontsize', 14, 'fontweight', 'bold');
legend(LegednStr);legend boxoff; set(legend,'FontSize',14);
set(gca,'LineWidth',1.5,'FontSize',14);
Position = [0 0 793*2/3 596*2/3]; set(gcf,'position',Position)
saveas(gcf, figName,'jpg');
end

Tags

Community Treasure Hunt

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

Start Hunting!