RunMat
GitHub

semilogy — Plot data with a logarithmic y-axis using MATLAB-compatible semilogy call patterns.

semilogy creates line plots like plot and configures the active axes to logarithmic scaling on Y. It follows MATLAB-compatible argument forms, axes targeting, and handle behavior.

Syntax

h = semilogy(Y)
h = semilogy(X, Y)
h = semilogy(args...)

Inputs

NameTypeRequiredDefaultDescription
YNumericArrayYesY data vector/matrix.
XNumericArrayYesX data vector/matrix.
argsAnyVariadicPlot-style inputs: optional axes handle, style tokens, and Name/Value pairs.

Returns

NameTypeDescription
hNumericScalarLine handle.

Errors

IdentifierWhenMessage
RunMat:semilogy:PlotFailedUnderlying plot rendering/parsing fails while building the semilog plot.semilogy: plot operation failed
RunMat:semilogy:LogAxisFailedApplying logarithmic Y-axis mode fails.semilogy: failed to apply logarithmic axis mode

How semilogy works

  • The returned value is a numeric line handle.
  • Only the y-axis is switched to log scale; the x-axis remains linear.
  • Y log-mode state is subplot-local and does not leak into other subplot axes.
  • Positive y-values are the meaningful domain for a logarithmic y-axis.

Examples

Plot an exponential decay on a logarithmic y-axis

t = linspace(0, 10, 200);
semilogy(t, exp(-t));

Compare multiple decays on the same axes

t = linspace(0, 10, 200);
h1 = semilogy(t, exp(-t));
set(h1, 'DisplayName', 'exp(-t)');
hold on;
h2 = semilogy(t, exp(-0.3*t));
set(h2, 'DisplayName', 'exp(-0.3t)');
legend;

Inspect the y-axis scale after plotting

t = 0:0.1:4;
semilogy(t, exp(t));
ax = gca;
get(ax, 'YScale')

Expected output:

ans =
    'log'

Using semilogy with coding agents

Open a RunMat example with live inputs, then ask the agent to explain how semilogy changes the result.

Run a small semilogy example, explain the result, then change one input and compare the output.

FAQ

When is semilogy the right choice over a linear plot?

Whenever the interesting structure lives in multiplicative changes along Y — exponential decay, growth rates, signal attenuation. On a log y-axis, exp(-t) becomes a straight line, which makes decay constants easy to read directly from the slope.

How do I visualize exponential decay and read the time constant?

Plot with semilogy and the decay appears as a straight line. The slope of that line is the decay rate. For exp(-t/tau), the signal drops by a factor of e every tau units along the x-axis.

t = linspace(0, 10, 200);
semilogy(t, exp(-t/3)); % tau = 3
grid on;
What about zero or negative y-values on a log y-axis?

They're excluded from rendering since log of zero or negative numbers is undefined. The data handle still stores them, but only positive y-values produce visible points. If your data crosses zero, consider splitting into positive and negative series or using a linear axis.

2D Charts

area · bar · errorbar · heatmap · hist · histogram · loglog · pie · plot · scatter · semilogx · stairs · stem

3D & Surface

contour · contour3 · contourf · mesh · meshc · plot3 · quiver · scatter3 · surf · surfc

Images

image · imagesc · imshow

Axes & Layout

axis · box · grid · sgtitle · subplot · title · view · zlabel

Appearance

colorbar · colormap · legend · shading

Handle Access

gca · gcf · get · set

Other

cla · clf · figure · fill3 · hold · patch · polarplot · print · suptitle · xline · yline

More plotting resources

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how semilogy is executed, line by line, in Rust.

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.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.