Plotting, how can I stop fill hiding the tickmarks?

11 views (last 30 days)
I'm making a complex plot, and using the fill command to create a patchy background for the plot.
But I don''t seem to be able to do it in a way that retains the tick marks. They always get covered by the filled area.
Here is an example:
figure;
X = 0:20;
Y = sin( X/10 );
plot( X, Y, 'ko' );
hold on;
Xfill = [ 10 20 20 10 10];
Yfill = [-1 -1 1 1 -1];
axf = fill( Xfill, Yfill, 'w' );
uistack(axf,'bottom');
Which produces this plot.
How can I keep my tick marks (without moving them to the outside)?

Accepted Answer

Matt J
Matt J on 12 May 2025
Edited: Matt J on 12 May 2025
X = 0:20;
Y = sin(X/10);
plot(X, Y, 'ko'); hold on;
% Draw white patch (e.g., to "highlight" a region)
Xfill = [10 20 20 10 10];
Yfill = [-1 -1 1 1 -1];
h = fill(Xfill, Yfill, 'w'); % Opaque white patch
% Send patch to bottom so axes ticks/labels are on top
uistack(h, 'bottom');
set(gca, 'Layer', 'top'); % Ensures ticks are drawn on top
xticks(0:2:20)

More Answers (0)

Tags

Products


Release

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!