Apply several properties to subplots without duplicated lines
조회 수: 51 (최근 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!