Apply several properties to subplots without duplicated lines
64 次查看(过去 30 天)
显示 更早的评论
Hi, I would like to make the below more succinct.
As
set(findobj(gcf,'type','axes'),'FontName','Calibri','FontSize',11,'FontWeight','Bold', 'LineWidth', 1,'layer','top');grid on
is written several times, I would like to know how to apply properties to all subplots all at once.
figure(1)
set(gcf,'position',[500 200 1000 600])
subplot(311)
stairs(A,B,'markersize',2,'marker','*','linewidth',1)
xlabel('Frequency (Hz)'),ylabel('Amplitude')
set(findobj(gcf,'type','axes'),'FontName','Calibri','FontSize',11, ...
'FontWeight','Bold', 'LineWidth', 1,'layer','top');grid on
subplot(312)
stairs(C,D,'markersize',2,'marker','*','linewidth',1)
xlabel('Frequency (Hz)'),ylabel('Amplitude')
set(findobj(gcf,'type','axes'),'FontName','Calibri','FontSize',11, ...
'FontWeight','Bold', 'LineWidth', 1,'layer','top');grid on
subplot(313)
plot(E,F,'MarkerSize',1,'LineWidth',1)
xlabel('Time [ms]'),ylabel('Amplitude')
set(findobj(gcf,'type','axes'),'FontName','Calibri','FontSize',11, ...
'FontWeight','Bold', 'LineWidth', 1,'layer','top');grid on
Thank you in advance!
0 个评论
采纳的回答
Sangeetha Jayaprakash
2017-8-14
You can just call the line "set(findobj(gcf,'type','axes'),'FontName','Calibri','FontSize',11,'FontWeight','Bold', 'LineWidth', 1,'layer','top');grid on" after all the subplots have been plotted as follows:
figure(1)
set(gcf,'position',[500 200 1000 600])
subplot(311)
stairs(A,B,'markersize',2,'marker','*','linewidth',1)
xlabel('Frequency (Hz)'),ylabel('Amplitude')
subplot(312)
stairs(C,D,'markersize',2,'marker','*','linewidth',1)
xlabel('Frequency (Hz)'),ylabel('Amplitude')
subplot(313)
plot(E,F,'MarkerSize',1,'LineWidth',1)
xlabel('Time [ms]'),ylabel('Amplitude')
set(findobj(gcf,'type','axes'),'FontName','Calibri','FontSize',11, ...
'FontWeight','Bold', 'LineWidth', 1,'layer','top');grid on
Here, "findobj(gcf,'type','axes')" will find all the axes which correspond to the current figure handle.
更多回答(1 个)
Lukas
2020-4-10
For example: to switch the grid on on all the axes in a current figure (gcf)
arrayfun(@(x) grid(x,'on'), findobj(gcf,'Type','axes'))
The functio @(x) grid(x,'on') can be replaced with something more complex.
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!