How to generate and save multiple plots?
14 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
MY script generate 185 plots and each plot further consists of 2 subplots. I need to plot both subplots in parallel way, however my cide only show one subplot at a time. May someonbe suuget me how i can modify my script.
clear all
clc
ev_hr=readmatrix('U.csv');
ev_hr=ev_hr';
ev_bg=load('BG.txt');
bbb=ev_bg; % rate calculation
position = 0; % position of plot in subplot
fig_num = 1; % figure() number
for S=1:185
uu=S;
r=bbb(uu); % for first event
data=ev_hr(:,uu);
u=transpose(data);
for n=1:length(u);
dt=n;
for i=1:length(u)-(n-1);
K=u(i:i+n-1);
k=sum(K);
b(i,n)=(k-(r)*(dt))/sqrt(r*dt);
end
end
T=transpose(b);
for ii=1:72
for jj=1:72-(ii-1)
if(ii==1)
b1(ii,jj)=T(ii,jj);
else
b1(ii,jj+(ii-1))=T(ii,jj);
end
end
end
for ii=1:length(b)
for jj=1:72
if(b1(ii,jj)==0)
b1(ii,jj)=nan;
end
end
end
c = NaN(72,24);
c2=[c b1];
x = [-23:72]' ;
y = [1:72]' ;
position = position + 1;
if position > 10; position = 1; fig_num = fig_num + 1,end
figure(fig_num)
subplot(93,2,position); pcolor(x,y,c2);
shading interp ;
colorbar
ylabel('Time interval (hours)')
xlabel('Time of the day')
A=readmatrix('hourly_ev.csv');
A=A';
uuu=A(:,uu);
ss=sum(uuu);
ss=ss+20
bb=cumsum(uuu);
h=[-23:72];
subplot(93,2,position); plot(h,bb, 'b')
axis([-23 72 0 ss])
end
0 个评论
采纳的回答
Awais Saeed
2021-12-9
编辑:Awais Saeed
2021-12-9
If you want to plot all of your plots on same plot window then use 'hold on'. If you want to plot each plot individually then you can acheive that as folllowing.
position = 0; % position of plot in subplot
fig_num = 1; % figure() number
for k = 20:30
x = rand(1,1).*linspace(0,2*pi,k);
y = sin(x).*cos(x);
position = position + 1;
% if position >= 5, create a new figure window and reset position value
if position >= 5; position = 1; fig_num = fig_num + 1,end
figure(fig_num)
subplot(2,2,position)
plot(x,y)
% add caption for each plot
caption = sprintf('fig # %d, subplot # %d, k = %d', fig_num,position, k); % Caption for each subplot's position
title(caption, 'FontSize', 10);
xlabel('x')
ylabel('sin(x)')
end
3 个评论
Awais Saeed
2021-12-9
Are you asking for two plots per subplot? If that's the case than simply update and if condition and subplot() as shown below:
if position >= 3; position = 1; fig_num = fig_num + 1,end
figure(fig_num)
subplot(2,1,position)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Subplots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!