How to plot a tiled layout using a loop?
149 次查看(过去 30 天)
显示 更早的评论
Hi guys, I have bunch of excel files that almost everything in them is similar. All I want is creating a loop instead of coding 10 figures, that some data is loaded from row (I can get this part done), then using a tiled layout or subplot to click run and MATLAB loops and adds figures to the next tile but I cant get this going:
for r = 1:10
X=xlsread(B) - for instance
tiledlayout(2,5)
scatter(X(the plot works))
nexttile
end
0 个评论
采纳的回答
ANKUR KUMAR
2021-3-12
编辑:ANKUR KUMAR
2021-3-12
for r = 1:10
subplot(2,5,r)
plot(randi(10,5,5),'ro')
end
If you have two loops, you can use as follows:
for r = 1:2
for k=1:5
subplot(2,5,(r-1)*5+k) % 5 is used because the maximum iteration of k is 5
plot(randi(10,5,5),'ro')
end
end
11 个评论
ANKUR KUMAR
2021-3-12
We need to use cat command to concatenate multiple separate matrices into a single matrix. The first argument in the cat command is the dimension along which you wish to concatenate.
更多回答(2 个)
Adam Danz
2021-3-12
编辑:Adam Danz
2021-3-12
> should a nexttile be in the loop?
Yes, but the tiled layout should be defined before the loop.
The first two examples listed in this answer show how to use tiledlayout in a loop with a global legend.
Here's another example.
fig = figure();
tlo = tiledlayout(2,3);
h = gobjects(1,6);
colors = lines(6);
for i = 1:6
ax = nexttile(tlo);
h(i) = plot(ax, 1:10, rand(1,10), 'Color', colors(i,:), 'DisplayName', sprintf('line %d',i));
end
lg = legend(h);
lg.Layout.Tile = 'East'; % <-- place legend east of tiles
Wolfgang McCormack
2021-3-12
2 个评论
Danish Ali
2022-3-8
Hey Adam ! @Adam Danz
I have similar question;
How can we plot multiple figures with subplots using loop?
For example, using loops, MATLAB should generate 17 figures and allocate 10 subplots in each figure.
Figure should have 1 to 10 subplots then figure two should have 11 to 20 and so on.
There are 170 samples. Any idea how it can be done ?
I would appreciate your help.
Adam Danz
2022-3-9
编辑:Adam Danz
2022-3-9
nFigures = 17; % number of figs
subplotGrid = [5,5]; % subplot grid arrangement
nAxes = prod(subplotGrid);
figHandles = gobjects(1,nFigures);
axesHandles = gobjects(nFigures, nAxes);
for i = 1:nFigures
figHandles(i) = figure();
for j = 1:nAxes
axesHandles(i,j) = subplot(subplotGrid(1),subplotGrid(2),j,figHandles(i));
end
end
Not tested
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Subplots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!