Legend when plot is inside a for loop

2 ビュー (過去 30 日間)
John
John 2015 年 9 月 22 日
コメント済み: John 2015 年 9 月 22 日
I could not get the legend to be right for this plot (which is inside a for loop). Any ideas what might have gone wrong?
clc;
close all;
clear all;
n4=4;
alpha=[0.01,0.04,0.07,0.1];
psi_grid = [1,2.555555555555555,4.111111111111111,5.666666666666667,...
7.222222222222222,8.777777777777779,10.333333333333334,...
11.888888888888890,13.444444444444445,15];
c = [0.0447669820741666,0.0447661557840448,0.0447591680513355,...
0.0447599101173151;0.170310830973294,0.170309215966225,...
0.170307375023580,0.170216706811469;0.324091538659768,...
0.324090724159454,0.324068002022192,0.199586696187332;...
0.492551604649453,0.492544368227092,0.418894624542177,...
0.214192778682781;0.669337278714228,0.669324577104975,...
0.452742963965304,0.223854115287130;0.850738640840670,...
0.850703370114468,0.478623618230665,0.230735577427633;...
1.03431601322415,1.03397088453076,0.499136989845354,...
0.235892409514585;1.21834098937911,1.11782404435437,...
0.515833589468893,0.239903478911979;1.40154955099879,...
1.17392236326210,0.529677715141711,0.243113765553547;...
1.58294248656178,1.22364826729296,0.541376923264488,0.245741990469332];
xlb=0;
xub=16;
xubtick=16;
figure('name','Fig.1','number','off');
set(gcf,'units','inches','renderer', 'painters');
pos = get(gcf,'pos');
set(gcf,'Units','inches',...
'Position',[pos(1) pos(2) 2.9 2]);
xlabel('parameter')
ylabel('sensitivity')
set(gca,...
'Units','normalized',...
'FontUnits','points',...
'FontWeight','normal',...
'FontSize',9,...
'FontName','Times',...
'XLim',[xlb xub],...
'XTick',xlb:2:xubtick,...
'YTick',0:.4:1.6,...
'YLim',[0 1.6],...
'Box','on')
set(gca, 'Position', get(gca, 'OuterPosition') - ...
get(gca, 'TightInset') * [-1 0 1 0; 0 -1 0 1; 0 0 1 0; 0 0 0 1]);
for k1 = 1:n4
plot(psi_grid,c(:,k1));
hold all;
ar= sprintf('{\\it\\alpha =}%s',rats(alpha(k1),6));
drawnow;
end
gridxy(get(gca,'xtick'),get(gca,'ytick'),'color',[.75 .75 .75],'LineWidth',.5,'Linestyle',':');
hold off;
legend(ar,'Location','best');

採用された回答

Walter Roberson
Walter Roberson 2015 年 9 月 22 日
ar{k1} = sprintf('{\\it\\alpha =}%s',rats(alpha(k1),6));
  1 件のコメント
John
John 2015 年 9 月 22 日
This worked. There was still a problem in my code above so that one entry in the legend was referring to the grid. Putting the gridxy as the very last command did the trick, even though I don't understand why:
...
hold off;
legend(ar,'Location','best');
gridxy(get(gca,'xtick'),get(gca,'ytick'),'color',[.75 .75 .75],'LineWidth',.5,'Linestyle',':');

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLegend についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by