How to merge multiple plots into one?
7 次查看(过去 30 天)
显示 更早的评论
I have obtained 17 figures from the program below but each figure is displayed seperately. I want to merge them all and plot them as only one figure.
EC = [0.0052 0.0078 0.0104 0.013 0.0156 0.0182];
Reff = 4:1:20;
h=2115:9:2394;
for j = 1:length(Reff)
figure,
hold on
for i = 1:length(EC)
filename1 = [num2str(EC(i)),'\',num2str(Reff(j)),'um\out_resultsG_I0.dat'];
I1 = getsignal(filename1);
I1(isnan(I1))=0;
I0_1 = sum(I1,2);
filename1 = [num2str(EC(i)),'\',num2str(Reff(j)),'um\out_resultsG_Q0.dat'];
Q1 = getsignal(filename1);
Q1(isnan(Q1))=0;
Q0_1 = sum(Q1,2);
dep=(I0_1-Q0_1)./(I0_1+Q0_1);
plot(dep,h,'LineWidth',2);
title(['Effective radius=',num2str(Reff(j)),'\mum',', FOV=2mrad'],'FontSize',12,'FontWeight','normal');
xlabel('Depolarisation ratio \delta_{out}','FontSize',12,'FontWeight','normal');
ylabel('Cloud depth (m)','FontSize',12,'FontWeight','normal');
end
legend(['EC=',num2str(EC(1)),'/m'],['EC=',num2str(EC(2)),'/m'],['EC=',num2str(EC(3)),'/m'],...
['EC=',num2str(EC(4)),'/m'],['EC=',num2str(EC(5)),'/m'],['EC=',num2str(EC(6)),'/m'],'location','Southeast')
end
2 个评论
Rik
2021-1-29
You're the one who put figure inside the for-loop. You only need to modify what you put in your legend, but otherwise removing that call should be your solution. Or do you want something different?
采纳的回答
Star Strider
2021-1-29
‘I wan to plot all these curves17times on a single figure.’
Put the figure call before the loops:
figure
hold on
for j = 1:length(Reff)
for i = 1:length(EC)
... etc. ...
and:
hold off
after the loops, so you do not plot anything else to those axes later in your code.
4 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!