set — Set figure, axes, and graphics-object properties through MATLAB-compatible set handle workflows.
set applies property/value pairs to graphics handles. It supports MATLAB-compatible property assignment across figure, axes, legend, text, and plot-object handles using forms like set(h, 'Property', value).
Syntax
status = set(h, property, value, ...)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
h | Any | Yes | — | Graphics handle (figure, axes, plot object, text, legend, etc.). |
pairs | Any | Variadic | — | Property/value pairs to assign (for example 'LineWidth', 2). |
Returns
| Name | Type | Description |
|---|---|---|
status | StringScalar | Returns "ok" when property updates succeed. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:set:InvalidArgument | Handle value is invalid or property/value pairs are missing/malformed/unsupported. | set: invalid argument |
RunMat:set:Internal | Internal handle/property mutation fails unexpectedly. | set: internal operation failed |
How set works
setrequires a plotting handle followed by one or more property/value pairs.- Different handle families accept different properties, and unsupported properties raise plotting errors rather than silently succeeding.
- Axes-local state such as limits, log modes, legend visibility, and axes font size can be updated through axes handles.
- Plot-child properties such as line width, display names, marker styling, and selected object semantics are updated in place through the returned plot handles.
- Legend and text objects participate in the same property path, so figure annotation workflows stay consistent with the rest of the handle model.
Examples
Style a line after plotting
h = plot(0:0.1:1, (0:0.1:1).^2);
set(h, 'Color', 'r', 'LineWidth', 2, 'DisplayName', 'quadratic');Update axes-local state through an axes handle
ax = subplot(1, 2, 2);
plot(1:5, [2 3 5 4 1]);
set(ax, 'XScale', 'log', 'Grid', false, 'FontSize', 12);Change a legend after it has been created
plot(1:5, 1:5);
lg = legend('series');
set(lg, 'Location', 'southwest', 'Orientation', 'horizontal');Using set with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how set changes the result.
Run a small set example, explain the result, then change one input and compare the output.
FAQ
Can I set multiple properties in a single call?⌄
Yes. Pass alternating property/value pairs: set(h, 'Color', 'r', 'LineWidth', 2, 'DisplayName', 'trend'). All updates apply atomically to the same handle.
What are the most commonly used properties to set on a line handle?⌄
'Color', 'LineWidth', 'LineStyle', 'Marker', and 'DisplayName' cover most styling needs. 'DisplayName' is especially useful — it feeds directly into legend when you call it without explicit labels.
h = plot(x, y);
set(h, 'Color', [0.2 0.6 0.8], 'LineWidth', 1.5, 'DisplayName', 'measured');What happens if I pass a property name that the handle doesn't support?⌄
RunMat raises a plotting error immediately. It doesn't silently ignore unknown properties, so typos in property names surface right away rather than producing subtle bugs.
Related Plotting functions
More plotting resources
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how set is executed, line by line, in Rust.
- View the source for set 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.