Contenuto principale

Visualizzazione dei dati con più scale e limiti degli assi

È possibile utilizzare una varietà di tecniche per visualizzare i dati con più scale e limiti degli assi. Ad esempio, è possibile utilizzare la funzione yyaxis per creare grafici con due assi y. Per creare grafici con più assi x e y, più barre dei colori o per creare un grafico con un asse discontinuo suddiviso in intervalli, utilizzare la funzione tiledlayout.

Visualizzazione dei dati con due assi y

Utilizzare la funzione yyaxis per creare un grafico con due assi y. Ad esempio, è possibile utilizzare due assi y per tracciare due linee su scale diverse.

Creare un oggetto assi e attivare l'asse sinistro y chiamando yyaxis left. Quindi tracciare un'onda sinusoidale.

figure
yyaxis left
x = linspace(0,10);
y = sin(3*x);
plot(x,y)

Figure contains an axes object. The axes object contains an object of type line.

Attivare l'asse destro y chiamando yyaxis right. Quindi tracciare un'onda sinusoidale amplificata.

yyaxis right
y2 = sin(3*x).*exp(0.5*x);
plot(x,y2)

Figure contains an axes object. The axes object contains 2 objects of type line.

Visualizzazione dei dati con più assi x e y

Dalla release R2019b

Per tracciare due serie di dati con assi x e y separati, creare due oggetti assi separati in un layout a piastrelle del grafico. All'interno di uno degli oggetti assi, spostare l'asse x nella parte superiore del riquadro del grafico e l'asse y sul lato destro del riquadro.

Ad esempio, è possibile creare due grafici con limiti diversi per gli assi x e y.

Per prima cosa, crea due serie di coordinate x e y.

x1 = 0:0.1:40;
y1 = 4.*cos(x1)./(x1+2);
x2 = 1:0.2:20;
y2 = x2.^2./x2.^3;

Creare un layout a piastrelle del grafico e un oggetto assi. Quindi tracciare negli assi:

  • Creare un layout a piastrelle del grafico 1x1 t.

  • Creare un oggetto assi ax1 chiamando la funzione axes e specificando t come oggetto padre.

  • Tracciare x1 e y1 come linea rossa e specificare ax1 come asse di destinazione.

  • Cambiare il colore dell'asse x e dell'asse y in modo che corrispondano alla linea tracciata. L'impostazione delle proprietà sugli assi dopo il plottaggio garantisce che le impostazioni vengano mantenute.

t = tiledlayout(1,1);
ax1 = axes(t);
plot(ax1,x1,y1,'-r')
ax1.XColor = 'r';
ax1.YColor = 'r';

Figure contains an axes object. The axes object contains an object of type line.

Creare un secondo oggetto assi e tracciare la seconda serie di dati in nero anziché in rosso. Quindi, impostare le proprietà sul secondo oggetto assi per spostare l'asse x e l'asse y e per assicurarsi che nessun grafico copra l'altro.

  • Creare un oggetto assi ax2 chiamando la funzione axes e specificando t come oggetto padre.

  • Tracciare x2 e y2 come linea nera e specificare ax2 come asse di destinazione.

  • Spostare l'asse x nella parte superiore e l'asse y a destra.

  • Impostare il colore dell'oggetto assi su 'none' in modo che il grafico sottostante sia visibile.

  • Disattivare i riquadri del grafico per evitare che i bordi delle caselle coprano gli assi x e y.

ax2 = axes(t);
plot(ax2,x2,y2,'-k')
ax2.XAxisLocation = 'top';
ax2.YAxisLocation = 'right';
ax2.Color = 'none';
ax1.Box = 'off';
ax2.Box = 'off';

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

Plottaggio dei dati su un asse x discontinuo

Dalla release R2019b

È possibile utilizzare un layout a piastrelle del grafico in modo da ottenere l'aspetto di un grafico suddiviso in intervalli lungo un asse. Ad esempio, si potrebbe voler escludere una sezione dell'asse x per concentrarsi su altre regioni di interesse.

Creare i vettori di coordinate x e y.

x = 0:0.1:60;
y = 4.*cos(x)./(x+2);

Creare un layout a piastrelle del grafico contenente due piastrelle e posizionare un oggetto assi su entrambe le piastrelle. Nella presentazione finale, questo oggetto assi apparirà sullo sfondo, dietro ad altri due oggetti assi. Una sezione del suo asse x sarà visibile per dare l'impressione di un unico asse x lungo.

  • Creare un layout a piastrelle del grafico 1x2 t e specificare una spaziatura compatta tra le piastrelle. L'impostazione della spaziatura tra le piastrelle consente di controllare la dimensione dell'intervallo tra le sezioni dell'asse x.

  • Creare gli assi di sfondo bgAx chiamando la funzione axes e specificando t come oggetto padre. Specificare gli argomenti nome-valore per rimuovere tutte le tacche e disattivare il riquadro del grafico.

  • Estendere gli assi di sfondo su entrambe le piastrelle impostando la proprietà Layout.TileSpan di bgAx su [1 2].

figure
t = tiledlayout(1,2,'TileSpacing','compact');
bgAx = axes(t,'XTick',[],'YTick',[],'Box','off');
bgAx.Layout.TileSpan = [1 2];

Figure contains an axes object. The axes object is empty.

Creare un oggetto assi davanti a bgAx nella prima piastrella. Tracciare x e y e impostare i limiti dell'asse x sul primo intervallo:

  • Creare ax1 chiamando la funzione axes e specificando t come oggetto padre. Per impostazione predefinita, gli assi vengono posizionati nella prima piastrella.

  • Tracciare x e y su ax1.

  • Chiamare la funzione xline per visualizzare una linea verticale tratteggiata al limite superiore del primo intervallo.

  • Impostare i limiti dell'asse x sul primo intervallo [0 15].

  • Aggiungere un'etichetta all'asse per identificare il primo intervallo.

ax1 = axes(t);
plot(ax1,x,y)
xline(ax1,15,':');
ax1.Box = 'off';
xlim(ax1,[0 15])
xlabel(ax1, 'First Interval')

Figure contains 2 axes objects. Axes object 1 is empty. Axes object 2 with xlabel First Interval contains 2 objects of type line, constantline.

Ripetere il processo per creare un altro oggetto assi e tracciare i dati per il secondo intervallo. Per impostazione predefinita, gli assi appaiono nella prima piastrella. Spostarlo nella seconda piastrella impostando la proprietà Layout.Tile degli assi su 2. Quindi, collegare gli assi in modo che i limiti di entrambi gli assi y corrispondano.

% Create second plot
ax2 = axes(t);
ax2.Layout.Tile = 2;
plot(ax2,x,y)
xline(ax2,45,':');
ax2.YAxis.Visible = 'off';
ax2.Box = 'off';
xlim(ax2,[45 60])
xlabel(ax2,'Second Interval')

% Link the axes
linkaxes([ax1 ax2], 'y')

Figure contains 3 axes objects. Axes object 1 is empty. Axes object 2 with xlabel First Interval contains 2 objects of type line, constantline. Axes object 3 with xlabel Second Interval contains 2 objects of type line, constantline.

Per aggiungere un titolo, passare il layout a piastrelle del grafico alla funzione title.

title(t,'Attenuated Cosine Function')

Figure contains 3 axes objects. Axes object 1 is empty. Axes object 2 with xlabel First Interval contains 2 objects of type line, constantline. Axes object 3 with xlabel Second Interval contains 2 objects of type line, constantline.

Visualizzazione di due serie di dati con barre dei colori separate

Dalla release R2020b

Un oggetto assi può contenere solo una barra dei colori. Per creare una visualizzazione con più barre dei colori, sovrapporre più oggetti assi in un layout a piastrelle del grafico. Rendere visibile solo uno degli assi, ma visualizzare una barra dei colori accanto a ciascuno di essi in una piastrella esterna del layout.

Creare i vettori di coordinate, i dati delle dimensioni e i dati dei colori per due grafici a bolle.

x = 1:15;
n = 70 * randn(1,15) + 50;
y1 = n + x.^2; 
y2 = n - linspace(1,225,15);
sz1 = rand(1,15);
sz2 = rand(1,15);
c = linspace(1,10,15);

Sovrapporre due oggetti assi, ciascuno contenente un grafico a bolle, in un layout a piastrelle del grafico.

  • Creare un layout a piastrelle del grafico 1x1 t.

  • Creare un oggetto assi ax1 e un grafico a bolle con la mappa colori winter.

  • Creare un oggetto assi ax2 e un grafico a bolle con la mappa colori autumn. Rendere invisibile questo oggetto assi impostando la proprietà Visible su 'off'.

  • Collegare gli oggetti assi in modo che rimangano sincronizzati. In questo caso, è possibile passare i figli di t alla funzione linkaxes. In alternativa, è possibile passare alla funzione un vettore di singoli oggetti assi.

% create first bubble chart with winter colormap
t = tiledlayout(1,1);
ax1 = axes(t); 
bubblechart(ax1,x,y1,sz1,c)
colormap(ax1,'winter')

% create second bubble chart with autumn colormap
ax2 = axes(t);
bubblechart(ax2,x,y2,sz2,c)
colormap(ax2,'autumn')
ax2.Visible = 'off';

% link the limits of axes
linkaxes(t.Children)

Figure contains 2 axes objects. Axes object 1 contains an object of type bubblechart. Hidden axes object 2 contains an object of type bubblechart.

Visualizzare una barra dei colori con un'etichetta per ciascun oggetto assi nella piastrella est del layout. Il layout dispone le barre dei colori e ne mantiene l'allineamento.

cb1 = colorbar(ax1);
cb1.Layout.Tile = 'east';
cb1.Label.String = 'Time (s)';

cb2 = colorbar(ax2);
cb2.Layout.Tile = 'east';
cb2.Label.String = 'Concentration (M)';

Figure contains 2 axes objects. Axes object 1 contains an object of type bubblechart. Hidden axes object 2 contains an object of type bubblechart.

Vedi anche

Funzioni

Argomenti