How to give one x and y axis label when using tiled layout('flow')?
240 次查看(过去 30 天)
显示 更早的评论
I am using tiled layout('flow') to plot a series of 20 plots on one figure. I want to have just one x and one y label for the entire figure, but when I try using the following code I get a figure that plots every subplot over each other.
figure()
t=tiledlayout('flow');
autoCorr = zeros(ceil(length(dataSource)),N);
lag = zeros(ceil(length(dataSource)),N);
for ii=1:N
[autoCorr(:,ii),lag(:,ii)] = autocorrelation(dataSource(:,ii));
nexttile(t)
plot(lag(:,ii),autoCorr(:,ii))
end
title(t,'title')
xlabel(t,'xlabel')
ylabel(t,'ylabel')
When I use this code the plot works fine but I'm not sure how to add the x and y axis labels.
autoCorr = zeros(ceil(length(dataSource)),N);
lag = zeros(ceil(length(dataSource)),N);
figure()
tiledlayout('flow')
for ii=1:N
[autoCorr(:,ii),lag(:,ii)] = autocorrelation(dataSource(:,ii));
nexttile
plot(lag(:,ii),autoCorr(:,ii))
% xlim([100,fmax])
end
0 个评论
采纳的回答
Cris LaPierre
2022-10-4
Use the xlabel and ylabel functions with the first input being your tiled layout object. The code below is taken from this example.
t = tiledlayout(2,2,'TileSpacing','Compact');
% Tile 1
nexttile
plot(rand(1,20))
title('Sample 1')
% Tile 2
nexttile
plot(rand(1,20))
title('Sample 2')
% Tile 3
nexttile
plot(rand(1,20))
title('Sample 3')
% Tile 4
nexttile
plot(rand(1,20))
title(t,'Size vs. Distance')
xlabel(t,'Distance (mm)')
ylabel(t,'Size (mm)')
6 个评论
Cris LaPierre
2024-3-26
I don't know of a way to add a shared label to a subset of the plots. In this case, I suggest labeling each Y axis individually
Gorp Gorp
2024-8-9
编辑:Gorp Gorp
2024-8-9
Hey there, you could do it with nested tiled layouts:
t0 = tiledlayout(1,2,'TileSpacing','tight');
%coloumn 1
t1 = tiledlayout(t0,3,1);
t1.Layout.Tile=1;
for i=1:3
nexttile(t1);
imagesc([]);
title(num2str(i))
end
title(t1,'Title','FontWeight','bold');
ylabel(t1,'Pixel','FontWeight','bold');
xlabel(t1,'Pixel','FontWeight','bold');
%coloumn 2
t2=tiledlayout(t0,3,1);
t2.Layout.Tile=2;
for i=1:3
nexttile(t2);
imagesc([]);
title(num2str(i))
end
title(t2,'Title','FontWeight','bold');
ylabel(t2,'Pixel','FontWeight','bold');
xlabel(t2,'Pixel','FontWeight','bold');
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Object Properties 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!