sgtitle — Set a centered figure-level title above all subplots with MATLAB-compatible sgtitle behavior.
sgtitle sets or updates a single figure-level title rendered above the full figure instead of a specific axes. It supports MATLAB-compatible current-figure and explicit-figure forms and returns a text handle for property updates.
Syntax
h = sgtitle(txt)
h = sgtitle(fig, txt)
h = sgtitle(txt, Name, Value, ...)
h = sgtitle(fig, txt, Name, Value, ...)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
txt | Any | Yes | — | Super-title text (string/char/cellstr-like multiline forms; numeric scalars also accepted). |
fig | NumericScalar | Yes | — | Target figure handle. |
props | Any | Variadic | — | Property/value pairs (Color, FontSize, FontWeight, etc.). |
Returns
| Name | Type | Description |
|---|---|---|
h | NumericScalar | Handle to the created/updated super-title object. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:sgtitle:InvalidArgument | Figure handle, text payload, or property/value arguments are invalid. | sgtitle: invalid argument |
RunMat:sgtitle:Internal | Internal plotting state update fails. | sgtitle: internal operation failed |
How sgtitle works
- The returned value is a text handle that can be inspected or updated through
getandset. - Unlike
title,sgtitleis figure-scoped and is drawn once above all subplot panels. - String scalars, char arrays, string arrays, and cell arrays can all be used to create multiline super titles.
- Text styling properties such as
FontSize,FontWeight,FontAngle,Color,Interpreter, andVisibleuse the shared plotting text-property system.
Examples
Add a super title above a subplot figure
subplot(2, 2, 1);
plot(1:10, rand(1, 10));
subplot(2, 2, 2);
plot(1:10, rand(1, 10));
subplot(2, 2, 3);
plot(1:10, rand(1, 10));
subplot(2, 2, 4);
plot(1:10, rand(1, 10));
sgtitle('Experiment Summary');Style the figure-level title and inspect the returned handle
subplot(1, 2, 1);
imagesc(peaks(20));
subplot(1, 2, 2);
imagesc(peaks(20));
h = sgtitle('Field Comparison', 'FontSize', 18, 'FontWeight', 'bold');
get(h, 'Type')Expected output:
ans =
'text'Target an explicit figure handle
fig = figure(42);
subplot(1, 2, 1);
plot(0:0.1:1, sin(0:0.1:1));
subplot(1, 2, 2);
plot(0:0.1:1, cos(0:0.1:1));
sgtitle(fig, 'Sine and Cosine');Using sgtitle with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how sgtitle changes the result.
Run a small sgtitle example, explain the result, then change one input and compare the output.
FAQ
How is sgtitle different from title?⌄
title attaches text to the current axes, so each subplot can have its own panel title. sgtitle attaches text to the figure as a whole and is drawn once above all panels. Use title for per-panel labels and sgtitle for the overall figure heading.
Can I update the super title after creating it?⌄
Yes. sgtitle returns a text handle, so you can inspect or update it with get and set.
h = sgtitle('Initial Title');
set(h, 'String', 'Updated Title', 'FontWeight', 'bold');What target objects are supported?⌄
Phase 1 supports the current figure by default and explicit figure handles through sgtitle(fig, txt, ...). Larger MATLAB target containers such as panels or tabs are tracked separately and are not part of the current implementation.
Related Plotting functions
More plotting resources
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how sgtitle is executed, line by line, in Rust.
- View the source for sgtitle in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.