Combiner plusieurs tracés
Cet exemple montre comment combiner des tracés sur les mêmes axes avec la fonction hold
et comment créer plusieurs axes sur une figure avec la fonction tiledlayout
.
Combiner des tracés sur les mêmes axes
Par défaut, les nouveaux tracés effacent les tracés existants et réinitialisent les propriétés des axes telles que le titre. Toutefois, il est possible d’utiliser la commande hold on
pour combiner plusieurs tracés sur les mêmes axes. Par exemple, tracez deux lignes et un diagramme de dispersion. Désactivez ensuite la fonctionnalité de hold.
x = linspace(0,10,50); y1 = sin(x); plot(x,y1) title('Combine Plots') hold on y2 = sin(x/2); plot(x,y2) y3 = 2*sin(x); scatter(x,y3) hold off
Lorsque la fonctionnalité de hold est activée, les nouveaux tracés n’effacent pas les tracés existants et ne réinitialisent pas les propriétés des axes telles que le titre ou les étiquettes d’axes. Les tracés utilisent des couleurs et des styles de ligne basés sur les propriétés ColorOrder
et LineStyleOrder
des axes. Il est possible que les limites et les valeurs de graduation des axes s’ajustent en fonction des nouvelles données.
Afficher plusieurs axes sur une figure
Il est possible d’afficher plusieurs axes sur une même figure avec la fonction tiledlayout
. Cette fonction crée une disposition de graphique en mosaïque qui superpose une grille de vignettes invisible sur toute la figure. Chaque vignette contient des axes permettant d’afficher un tracé. Une fois la mosaïque créée, appelez la fonction nexttile
pour y placer un objet axes. Appelez ensuite une fonction de tracé pour afficher un tracé sur ces axes. Par exemple, créez deux tracés dans une mosaïque de 2 x 1. Ajoutez un titre à chaque tracé.
x = linspace(0,10,50); y1 = sin(x); y2 = rand(50,1); tiledlayout(2,1) % Top plot nexttile plot(x,y1) title('Plot 1') % Bottom plot nexttile scatter(x,y2) title('Plot 2')
Créer un tracé qui occupe plusieurs lignes ou colonnes
Pour créer un tracé qui occupe plusieurs lignes ou colonnes, spécifiez l’argument span
lorsque vous appelez nexttile
. Par exemple, créez une mosaïque de 2 x 2. Affichez des tracés dans les deux premières vignettes. Ensuite, créez un tracé qui occupe une ligne et deux colonnes.
x = linspace(0,10,50); y1 = sin(x); y2 = rand(50,1); % Top two plots tiledlayout(2,2) nexttile plot(x,y1) nexttile scatter(x,y2) % Plot that spans nexttile([1 2]) y2 = rand(50,1); plot(x,y2)
Modifier l’apparence des axes
Modifiez l’apparence des axes en définissant les propriétés de chacun des objets axes. Vous pouvez obtenir l’objet axes en appelant la fonction nexttile
avec un argument en sortie. Vous pouvez également spécifier l’objet axes comme premier argument en entrée d’une fonction graphique pour que cette dernière cible les axes appropriés.
Par exemple, créez deux tracés et affectez les objets axes aux variables ax1
et ax2
. Modifiez la taille de police des axes ainsi que la couleur de l’axe des x du premier tracé. Ajoutez une grille au second tracé.
x = linspace(0,10,50); y1 = sin(x); y2 = rand(50,1); tiledlayout(2,1) % Top plot ax1 = nexttile; plot(ax1,x,y1) title(ax1,'Plot 1') ax1.FontSize = 14; ax1.XColor = 'red'; % Bottom plot ax2 = nexttile; scatter(ax2,x,y2) title(ax2,'Plot 2') grid(ax2,'on')
Contrôler l’espacement autour des vignettes
Il est possible de contrôler l’espacement autour des vignettes d’une disposition en mosaïque en spécifiant les propriétés Padding
et TileSpacing
. Par exemple, affichez quatre tracés dans une mosaïque de 2 x 2.
x = linspace(0,30);
y1 = sin(x);
y2 = sin(x/2);
y3 = sin(x/3);
y4 = sin(x/4);
% Create plots
t = tiledlayout(2,2);
nexttile
plot(x,y1)
nexttile
plot(x,y2)
nexttile
plot(x,y3)
nexttile
plot(x,y4)
Réduisez l’espacement autour du périmètre de la mosaïque et autour de chaque vignette en définissant les propriétés Padding
et TileSpacing
sur 'compact'
.
t.Padding = 'compact'; t.TileSpacing = 'compact';
Ajouter un titre et des étiquettes d’axes communs
Il est possible d’afficher un titre et des étiquettes d’axes communs à toute la mosaïque. Créez une mosaïque de 2 x 1 nommée t
. Ensuite, affichez-y un tracé linéaire et un tracé en bâtons. Synchronisez les limites de l’axe des x en appelant la fonction linkaxes
.
x1 = linspace(0,20,100); y1 = sin(x1); x2 = 3:17; y2 = rand(1,15); % Create plots. t = tiledlayout(2,1); ax1 = nexttile; plot(ax1,x1,y1) ax2 = nexttile; stem(ax2,x2,y2) % Link the axes linkaxes([ax1,ax2],'x');
Ajoutez un titre et des étiquettes d’axes communs en passant t
aux fonctions title
, xlabel
et ylabel
. Rapprochez les tracés en supprimant les étiquettes de graduation de l’axe des x du tracé supérieur et en définissant la propriété TileSpacing
de t
sur 'compact'
.
% Add shared title and axis labels title(t,'My Title') xlabel(t,'x-values') ylabel(t,'y-values') % Move plots closer together xticklabels(ax1,{}) t.TileSpacing = 'compact';
Voir aussi
Fonctions
tiledlayout
|nexttile
|title
|hold