accessing subplot grid title (sgtitle) from figure properties
Show older comments
How to get the sgtitle of a figure directly from the properties?
For the fig title, this is fairly straightforward and ideal when wishing to save a large volume of open figures automatically:
titleName = gca(figObj).Title.String
However there is no obvious property name for subplot grid title (sgtitle) that can be readily accessed. Yet clearly the sgtitle information is retained after closing as it reappears upon reopening a figure. Is it just that this property is not accessible to users? This seems unlikely, especially given the many dozens of properties available.
Cheers.
Accepted Answer
More Answers (1)
The object created and returned by sgtitle has a Type that is not the same as its class.
x = [1;1]*(0:15);
y = randn(2, size(x,2));
figure
subplot(2,1,1)
plot(x(1,:), y(1,:))
xlabel('x_1')
ylabel('y_1')
title('Subplot #1')
subplot(2,1,2)
plot(x(2,:), y(2,:))
xlabel('x_2')
ylabel('y_2')
title('Subplot #2')
h = sgtitle('Subplots');
h.Type
hf = gcf;
sgt = findobj(hf, 'Type','subplottext')
sgt == h % true
Of course, even easier is to call sgtitle with an output argument and keep that variable around, as I did with the variable named h.
4 Comments
Star Strider
on 14 Jun 2023
@Steven Lord — I looked at the documentation for subplot, sgtitle and findobj (and related functions) and could find no mention of that. That specific documentation doesn’t even come up in the drop-down list when I search the documentation using graphics (I checked just now).
I would never have found it (or even known that it exists) if you hadn’t provided that. Finding information such as that needs to be made easier, and preferably part of the sgtitle (and related functions) documentation.
Steven Lord
on 14 Jun 2023
Star Strider
on 14 Jun 2023
Thank you!
Categories
Find more on Printing and Saving in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
