Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

how to give labels and title to all subplot one time

Asked by moonman

moonman (view profile)

on 6 Dec 2011

I am having 12 subplots in my figure All are required to have same labels How can i give them label by mentioning only one time?

0 Comments

moonman

moonman (view profile)

Tags

Products

No products are associated with this question.

2 Answers

Answer by Abhishek Gupta

Abhishek Gupta (view profile)

on 6 Dec 2011
Accepted answer

One may use FINDOBJ to locate all subplots/axes on a figure and then use a FOR loop to label/title all the subplots. For example:

f=figure;
subplot(2,2,1:2)
text(.5,.5,'subplot(2,2,1:2)',...
    'FontSize',14,'HorizontalAlignment','center')
subplot(2,2,3)
text(.5,.5,'subplot(2,2,3)',...
    'FontSize',14,'HorizontalAlignment','center')
subplot(2,2,4)
text(.5,.5,'subplot(2,2,4)',...
    'FontSize',14,'HorizontalAlignment','center')
ax = findobj(f,'Type','Axes');
for i=1:length(ax)
    ylabel(ax(i),{'Nice'})
    title(ax(i),{'Very Nice'})
end

Hope this helps.

Abhi...

1 Comment

Naz

Naz (view profile)

on 6 Dec 2011

Since all of your subplots have the same labels, I would label only the left subplots for y-axes and bottom subplots for x-axes. This way your plots look a little bigger because your labels don't take extra space.

Abhishek Gupta

Abhishek Gupta (view profile)

Answer by Jan Simon

Jan Simon (view profile)

on 6 Dec 2011
FigH     = figure;
subplot(1,2,1);  subplot(1,2,2);
AxesH    = findobj(FigH, 'Type', 'Axes');
YLabelHC = get(AxesH, 'YLabel');
YLabelH  = [YLabelHC{:}];
set(YLabelH, 'String', 'Y-label')
TitleHC  = get(AxesH, 'Title');
TitleH   = [TitleHC{:}];
set(TitleH, 'String', 'The title');

0 Comments

Jan Simon

Jan Simon (view profile)

Contact us