Main Content

Aggiunta di una legenda al grafico

Le legende sono un modo utile per etichettare le serie di dati tracciate su un grafico. Questi esempi mostrano come creare una legenda e apportare alcune modifiche di uso comune, come la modifica della posizione, l'impostazione della dimensione del carattere e l'aggiunta di un titolo. È inoltre possibile creare una legenda con più colonne o creare una legenda per un sottoinsieme di dati tracciati.

Creazione di una legenda semplice

Creare una figura con un grafico a linee e un grafico a dispersione. Aggiungere una legenda con una descrizione per ciascun grafico. Specificare le etichette della legenda come input della funzione legend.

figure
x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off

legend('sin(x/2)','2016')

Figure contains an axes object. The axes object contains 2 objects of type line, scatter. These objects represent sin(x/2), 2016.

Definizione delle etichette tramite DisplayName

In alternativa, è possibile specificare le etichette della legenda utilizzando la proprietà DisplayName. Impostare la proprietà DisplayName come coppia nome-valore quando si chiamano le funzioni di plottaggio. Quindi, chiamare il comando legend per creare la legenda.

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')

legend

Le legende si aggiornano automaticamente quando si aggiungono o si rimuovono serie di dati. Se si aggiungono ulteriori dati agli assi, utilizzare la proprietà DisplayName per specificare le etichette. Se non si imposta la proprietà DisplayName, la legenda utilizza un'etichetta con la forma 'dataN'.

Aggiungere un grafico a dispersione per i dati del 2017.

x3 = [0 1 2 3 4 5];
y3 = [0.1 0.4 0.6 0.9 0.8 0.7];
scatter(x3,y3,'filled','DisplayName','2017')
drawnow
hold off

Figure contains an axes object. The axes object contains 3 objects of type line, scatter. These objects represent sin(x/2), 2016, 2017.

Personalizzazione dell'aspetto della legenda

La funzione legend crea un oggetto Legend. Gli oggetti egend presentano delle proprietà che possono essere utilizzate per personalizzare l'aspetto della legenda, come le proprietà Location, Orientation, FontSize e Title. Per un elenco completo, vedere Legend Properties.

Le proprietà possono essere impostate in due modi:

  • Utilizzando le coppie nome-valore nel comando legend. Nella maggior parte dei casi, quando si utilizzano le coppie nome-valore, è necessario specificare le etichette in un array di celle, come legend({'label1','label2'},'FontSize',14).

  • Utilizzando l'oggetto Legend. È possibile restituire l'oggetto Legend come argomento di output della funzione legend, come lgd = legend. Quindi, utilizzare lgd con la notazione a punti per impostare le proprietà, come lgd.FontSize = 14.

Posizione e orientamento della legenda

Specificare la posizione e l'orientamento della legenda impostando le proprietà Location e Orientation come coppie nome-valore. Impostare la posizione su una delle otto direzioni cardinali o intercardinali, in questo caso 'northwest'. Impostare l'orientamento su 'vertical' (impostazione predefinita) o si 'horizontal', come in questo caso. Specificare le etichette in un array di celle.

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off

legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')

Figure contains an axes object. The axes object contains 2 objects of type line, scatter. These objects represent sin(x/2), 2016.

Dimensione del carattere e titolo della legenda

Specificare la dimensione del carattere e il titolo della legenda impostando le proprietà FontSize e Title. Attribuire l’oggetto Legend alla variabile lgd. Quindi, utilizzare lgd per modificare le proprietà utilizzando la notazione a punti.

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')
hold off

lgd = legend;
lgd.FontSize = 14;
lgd.Title.String = '2016 Data';

Figure contains an axes object. The axes object contains 2 objects of type line, scatter. These objects represent sin(x/2), 2016.

Legenda con più colonne

Creare un grafico con sei tracciati di linea. Aggiungere una legenda con due colonne impostando la proprietà NumColumns su 2.

x = linspace(0,10);
y1 = sin(x);
y2 = sin(0.9*x);
y3 = sin(0.8*x);
y4 = sin(0.7*x);
y5 = sin(0.6*x);
y6 = sin(0.5*x);

plot(x,y1,'DisplayName','sin(x)')
hold on
plot(x,y2,'DisplayName','sin(0.9x)')
plot(x,y3,'DisplayName','sin(0.8x)')
plot(x,y4,'DisplayName','sin(0.7x)')
plot(x,y5,'DisplayName','sin(0.6x)')
plot(x,y6,'DisplayName','sin(0.5x)')
hold off

lgd = legend;
lgd.NumColumns = 2;

Figure contains an axes object. The axes object contains 6 objects of type line. These objects represent sin(x), sin(0.9x), sin(0.8x), sin(0.7x), sin(0.6x), sin(0.5x).

Aggiunta di un sottoinsieme di grafici nella legenda

Abbinare due grafici a barre e un grafico a dispersione. Creare una legenda che includa solo i grafici a barre specificando gli oggetti Bar, b1 e b2 come primo argomento di input della funzione legend. Specificare gli oggetti in un vettore.

x = [1 2 3 4 5];
y1 = [.2 .4 .6 .4 .2];
b1 = bar(x,y1);

hold on 
y2 = [.1 .3 .5 .3 .1];
b2 = bar(x,y2,'BarWidth',0.5);

y3 = [.2 .4 .6 .4 .2];
s = scatter(x,y3,'filled');
hold off

legend([b1 b2],'Bar Chart 1','Bar Chart 2')

Figure contains an axes object. The axes object contains 3 objects of type bar, scatter. These objects represent Bar Chart 1, Bar Chart 2.

Vedi anche

|