Abbinamento di più grafici
Questo esempio mostra come abbinare i grafici sugli stessi assi utilizzando la funzione hold
e come creare più assi in una figura utilizzando la funzione tiledlayout
.
Abbinamento di grafici sugli stessi assi
Per impostazione predefinita, i nuovi grafici eliminano i grafici esistenti e ripristinano le proprietà degli assi, come il titolo. Tuttavia, è possibile utilizzare il comando hold on
per abbinare più grafici sugli stessi assi. Ad esempio, tracciare due linee e un grafico a dispersione. Quindi reimpostare lo stato hold su off.
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
Quando lo stato hold è impostato su on, i nuovi grafici non eliminano quelli esistenti e non ripristinano le proprietà degli assi, come il titolo o le etichette degli assi. I grafici alternano i colori e gli stili delle linee in base alle proprietà ColorOrder
e LineStyleOrder
degli assi. I limiti degli assi e i valori delle tacche potrebbero adattarsi ai nuovi dati.
Visualizzazione di più assi in una figura
È possibile visualizzare più assi in una singola figura utilizzando la funzione tiledlayout
. Questa funzione crea un layout a piastrelle di un grafico contenente una griglia invisibile di piastrelle sull'intera figura. Ciascuna piastrella può contenere un asse per la visualizzazione di un grafico. Dopo aver creato un layout, chiamare la funzione nexttile
per inserire un oggetto assi nel layout. Quindi, chiamare una funzione di plottaggio per tracciare il grafico sugli assi. Ad esempio, creare due grafici in un layout 2x1. Aggiungere un titolo a ciascun grafico.
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')
Creazione di grafici che si estendono su più righe o colonne
Per creare un grafico che si estende su più righe o colonne, specificare l'argomento span
quando si chiama nexttile
. Ad esempio, creare un layout 2x2. Tracciare nelle prime due piastrelle. Quindi, creare un grafico che si estende su una riga e due colonne.
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)
Modifica dell'aspetto degli assi
Modificare l'aspetto degli assi impostando le proprietà di ciascun oggetto assi. È possibile ottenere l'oggetto assi chiamando la funzione nexttile
con un argomento di output. È inoltre possibile specificare l'oggetto assi come primo argomento di input di una funzione grafica per garantire che la funzione punti agli assi corretti.
Ad esempio, creare due grafici e assegnare gli oggetti assi alle variabili ax1
e ax2
. Modificare la dimensione del carattere degli assi e il colore dell'asse x per il primo grafico. Aggiungere linee della griglia al secondo grafico.
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')
Controllo della spaziatura intorno alle piastrelle
È possibile controllare la spaziatura tra le piastrelle di un layout specificando le proprietà Padding
e TileSpacing
. Ad esempio, visualizzare quattro grafici in un layout 2x2.
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)
Ridurre la spaziatura lungo il perimetro del layout e intorno a ciascuna piastrella impostando le proprietà Padding
e TileSpacing
su 'compact'
.
t.Padding = 'compact'; t.TileSpacing = 'compact';
Visualizzazione del titolo condiviso e delle etichette condivise degli assi
È possibile visualizzare un titolo condiviso e le etichette condivise degli assi in un layout. Creare un layout t
2x1. Quindi, visualizzare un grafico a linee e un grafico a stelo. Sincronizzare i limiti dell'asse x chiamando la funzione 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');
Aggiungere un titolo condiviso e le etichette condivise degli assi passando t
alle funzioni title
, xlabel
e ylabel
. Avvicinare i grafici rimuovendo le etichette delle tacche dell'asse x dal grafico superiore e impostando la proprietà TileSpacing
di t
su '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';
Vedi anche
Funzioni
tiledlayout
|nexttile
|title
|hold