Apply several properties to subplots without duplicated lines

67 vues (au cours des 30 derniers jours)
Creatlee
Creatlee le 10 Août 2017
Réponse apportée : Lukas le 10 Avr 2020
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!

Réponse acceptée

Sangeetha Jayaprakash
Sangeetha Jayaprakash le 14 Août 2017
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 commentaire
Creatlee
Creatlee le 15 Août 2017
Dear Sangeetha,
Thank you for your answer. This is what I was looking for!! Even I may use several other properties of figure based on your answer. Thank you! Have a nice day!

Connectez-vous pour commenter.

Plus de réponses (1)

Lukas
Lukas le 10 Avr 2020
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.

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by