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)?

 採用された回答

Matt J
Matt J 2025 年 5 月 12 日
編集済み: Matt J 2025 年 5 月 12 日

0 投票

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)

その他の回答 (0 件)

カテゴリ

製品

リリース

R2024b

タグ

質問済み:

2025 年 5 月 12 日

コメント済み:

2025 年 5 月 15 日

Community Treasure Hunt

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

Start Hunting!

Translated by