Effacer les filtres
Effacer les filtres

xline for multiple axes in tiled layout

11 vues (au cours des 30 derniers jours)
Biraj Khanal
Biraj Khanal le 14 Mar 2023
Commenté : Star Strider le 14 Mar 2023
How can I use xline or yline to make line in multiple axes of a tiled layout without having to write the lines for every tile?
I have the following code to plot multiple data in a tiled layout.
t = tiledlayout(1,2);
t1 = nexttile;
semilogy(x1,y1); hold on;
semilogy(x2,y2);
legend('x1','y1');
title('Data 1')
xline(3,'-')
xline(5,'-')
t2 = nexttile;
semilogy(xx1,yy1); hold on;
semilogy(xx2,yy2);
legend('xx1','xx2');
title('Data 2')
xline(3,'-')
xline(5,'-')
linkaxes([t1 t2],'x');
t1.XLim = [0 300];
While linkaxes works to set the limits, I am not sure how I can do this for the xline or yline functions.

Réponse acceptée

Star Strider
Star Strider le 14 Mar 2023
The ‘ax’ argument to xline has to be a scalar axes handle, so passing a vector of axes handles to it fails. Each nexttile call creates a new axes, so subscript them and then use arrayfun, or a for loop —
t = tiledlayout(1,2);
tl(1) = nexttile;
plot(1:50, randn(1,50))
tl(2) = nexttile;
plot(1:40, randn(1,40))
arrayfun(@(ax)xline(ax,[3 5], 'r', 'LineWidth',2), tl)
.
  4 commentaires
Biraj Khanal
Biraj Khanal le 14 Mar 2023
Makes it clear. Thanks a lot!
Star Strider
Star Strider le 14 Mar 2023
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by