Contenuto principale

contour

Grafico di contorno della matrice

  • Contour plot

Descrizione

contour(Z) crea un grafico di contorno contenente le isolinee della matrice Z, dove Z contiene i valori di altezza sul piano x-y. MATLAB® seleziona automaticamente le linee di contorno da visualizzare. Gli indici di colonna e di riga di Z sono rispettivamente le coordinate x e y nel piano.

esempio

contour(X,Y,Z) specifica le coordinate x e y per i valori in Z.

esempio

contour(___,levels) specifica le linee di contorno da visualizzare come ultimo argomento in una qualsiasi delle sintassi precedenti. Specificare levels come valore scalare n per visualizzare le linee di contorno a livelli (altezze) scelti automaticamente da n. Per disegnare le linee di contorno ad altezze specifiche, precisare levels come vettore di valori crescenti in modo monotono. Per disegnare i contorni ad un'altezza (k), specificare levels come vettore riga a due elementi [k k].

esempio

contour(___,LineSpec) specifica lo stile e il colore delle linee di contorno.

esempio

contour(___,Name,Value) specifica ulteriori opzioni per il grafico di contorno utilizzando uno o più argomenti della coppia nome-valore. Specificare le opzioni dopo tutti gli altri argomenti di input. Per un elenco delle proprietà, vedere Contour Properties.

esempio

contour(ax,___) visualizza il grafico di contorno negli assi di destinazione. Specificare gli assi come primo argomento in una qualsiasi delle sintassi precedenti.

M = contour(___) restituisce la matrice di contorno M, che contiene le coordinate (x, y) dei vertici a ciascun livello.

[M,c] = contour(___) restituisce la matrice di contorno e l'oggetto contorno c. Utilizzare c per impostare le proprietà dopo aver visualizzato il grafico di contorno.

esempio

Esempi

comprimi tutto

Creare le matrici X e Y che definiscono una griglia nel piano x-y. Definire la matrice Z come le altezze sopra quella griglia. Quindi tracciare i contorni di Z.

x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X)+cos(Y);
contour(X,Y,Z)

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

Definire Z come funzione di X e Y. In questo caso, chiamare la funzione peaks per creare X, Y e Z. Quindi tracciare 20 contorni di Z.

[X,Y,Z] = peaks;
contour(X,Y,Z,20)

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

Visualizzare i contorni della funzione peaks a Z = 1.

[X,Y,Z] = peaks;
v = [1,1];
contour(X,Y,Z,v)

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

Creare un grafico di contorno della funzione peaks e specificare lo stile della linea tratteggiata.

[X,Y,Z] = peaks;
contour(X,Y,Z,'--')

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

Definire Z come funzione di due variabili, X e Y. Quindi creare un grafico di contorno di tale funzione e visualizzare le etichette impostando la proprietà ShowText su 'on'.

x = -2:0.2:2;
y = -2:0.2:3;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2-Y.^2);
contour(X,Y,Z,'ShowText','on')

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

Dalla release R2022b

Creare un grafico di contorno che visualizzi le etichette con una cifra dopo il punto decimale, seguita dalla lettera m.

contour(peaks,[-4 0 2],"ShowText",true,"LabelFormat","%0.1f m")

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

Dalla release R2022b

È possibile specificare una funzione per formattare le etichette quando è necessario calcolare i valori. Ad esempio, è possibile definire una funzione per calcolare i valori delle etichette in unità diverse.

Definire questa funzione in un file di programma chiamato mylabelfun.m. La funzione converte l'input da metri a piedi e restituisce un vettore di stringhe contenente ciascun valore espresso in metri con il valore equivalente espresso in piedi tra parentesi.

function labels = mylabelfun(vals)
feetPerMeter = 3.28084;
feet = round(vals.*feetPerMeter);
labels = vals + " m (" + feet + " ft)";
labels(vals == 0) = "0 m";
end

Quindi, creare un grafico di contorno e specificare la proprietà LabelFormat come handle di mylabelfun.

contour(peaks,[-4 0 2],"ShowText",true,"LabelFormat",@mylabelfun)

Creare un grafico di contorno della funzione peaks. Rendere le linee di contorno più spesse impostando la proprietà LineWidth su 3.

Z = peaks;
[M,c] = contour(Z);
c.LineWidth = 3;

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

Inserire i valori NaN ovunque siano presenti discontinuità su una superficie. La funzione contour non disegna le linee di contorno in quelle regioni.

Definire la matrice Z come campionamento della funzione peaks. Sostituire tutti i valori presenti nella colonna 26 con i valori NaN. Quindi tracciare i contorni della matrice Z modificata.

Z = peaks;
Z(:,26) = NaN;
contour(Z)

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

Argomenti di input

comprimi tutto

Coordinate x, specificate come matrice della stessa grandezza di Z o come vettore di lunghezza n, dove [m,n] = size(Z). Il valore predefinito di X è il vettore (1:n).

Quando X è una matrice, i valori devono essere rigorosamente crescenti o decrescenti lungo una dimensione e rimanere costanti lungo l'altra dimensione. La dimensione che varia deve essere opposta alla dimensione che varia in Y. È possibile utilizzare la funzione meshgrid per creare matrici X e Y.

Quando X è un vettore, i valori devono essere rigorosamente crescenti o decrescenti.

Esempio X = 1:10

Esempio X = [1 2 3; 1 2 3; 1 2 3]

Esempio [X,Y] = meshgrid(1:10)

La proprietà XData dell'oggetto Contour memorizza le coordinate x.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Coordinate y, specificate come matrice della stessa grandezza di Z o come vettore di lunghezza m, dove [m,n] = size(Z). Il valore predefinito di Y è il vettore (1:m).

Quando Y è una matrice, i valori devono essere rigorosamente crescenti o decrescenti lungo una dimensione e rimanere costanti lungo l'altra dimensione. La dimensione che varia deve essere opposta alla dimensione che varia in X. È possibile utilizzare la funzione meshgrid per creare le matrici X e Y.

Quando Y è un vettore, i valori devono essere rigorosamente crescenti o decrescenti.

Esempio Y = 1:10

Esempio Y = [1 1 1; 2 2 2; 3 3 3]

Esempio [X,Y] = meshgrid(1:10)

La proprietà YData dell'oggetto Contour memorizza le coordinate y.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Coordinate z, specificate come matrice. Questa matrice deve avere almeno due righe e due colonne e deve contenere almeno due valori diversi.

Esempio Z = peaks(20)

La proprietà ZData dell'oggetto Contour memorizza le coordinate z.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Livelli di contorno, specificati come numero intero scalare o vettore. Utilizzare questo argomento per controllare il numero e la posizione delle linee di contorno. Se non si specificano i livelli, la funzione contour li seleziona automaticamente.

  • Per disegnare le linee di contorno a n altezze selezionate automaticamente, specificare i livelli come valore scalare n.

  • Per disegnare le linee di contorno ad altezze specifiche, precisare levels come vettore di valori crescenti in modo monotono.

  • Per disegnare linee di contorno ad un'unica altezza k, specificare levels come vettore riga a due elementi [k k].

Esempio contour(peaks,10) disegna linee di contorno a 10 altezze selezionate automaticamente sulla funzione peaks.

Esempio contour(peaks,[-4 0 4]) disegna le linee di contorno a 3 altezze specifiche sulla funzione peaks: -4, 0 e 4.

Esempio contour(peaks,[3 3]) disegna le linee di contorno per mostrare dove l'altezza della funzione peaks è 3.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Stile e colore della linea, specificati come vettore di caratteri o scalare di stringa contenente caratteri e simboli. I caratteri e i simboli possono apparire in qualsiasi ordine. È possibile specificare lo stile della linea, il colore della linea o entrambi. I simboli del marcatore come 'o' vengono ignorati.

Esempio '--g' è una linea verde tratteggiata.

Stile delle lineeDescrizioneLinea risultante
"-"Linea continua

Sample of solid line

"--"Linea tratteggiata

Sample of dashed line

":"Linea punteggiata

Sample of dotted line

"-."Linea a tratti e punti

Sample of dash-dotted line, with alternating dashes and dots

Nome del coloreNome abbreviatoAspetto
'red''r'

Sample of the color red

'green''g'

Sample of the color green

'blue''b'

Sample of the color blue

'cyan' 'c'

Sample of the color cyan

'magenta''m'

Sample of the color magenta

'yellow''y'

Sample of the color yellow

'black''k'

Sample of the color black

'white''w'

Sample of the color white

Assi di destinazione, specificati come oggetto Axes. Se non si specificano gli assi, contour traccia gli assi correnti.

Argomenti nome-valore

comprimi tutto

Specificare coppie opzionali di argomenti come Name1=Value1,...,NameN=ValueN, dove Name è il nome dell’argomento e Value è il valore corrispondente. Gli argomenti nome-valore devono comparire dopo gli altri argomenti, mentre l'ordine delle coppie non è rilevante.

Per le release antecedenti alla R2021a, utilizzare le virgole per separare ciascun nome e valore e includere Name tra virgolette.

Esempio contour(Z,'ShowText','on') visualizza le etichette delle linee di contorno.

Nota

Le proprietà qui elencate sono solo un sottoinsieme. Per un elenco completo, vedere Contour Properties.

Etichette delle linee di contorno, specificate come 'on' o 'off' oppure come valore numerico o logico 1 (true) o 0 (false). Un valore di 'on' equivale a true e 'off' equivale a false. Pertanto, è possibile utilizzare il valore di questa proprietà come valore logico. Il valore è memorizzato come valore logico on/off di tipo matlab.lang.OnOffSwitchState.

  • 'on': visualizza i valori dell'altezza lungo le linee di contorno.

  • 'off': non etichetta le linee di contorno.

Larghezza della linea, specificata come valore positivo in punti. Un punto equivale a 1/72 di pollice.

Spaziatura tra le etichette lungo le linee di contorno, specificata come valore scalare in punti, dove un punto corrisponde a 1/72 di pollice. Utilizzare questa proprietà per controllare il numero di etichette di contorno lungo le linee di contorno. Valori più piccoli producono più etichette.

È necessario impostare la proprietà ShowText su 'on' affinché la proprietà LabelSpacing abbia effetto.

Se si utilizza la funzione clabel per visualizzare le etichette, la proprietà LabelSpacing non ha alcun effetto e il grafico visualizza un'etichetta per riga.

Argomenti di output

comprimi tutto

Matrice dei contorni, restituita come matrice a due righe della seguente forma.

Z1, x1,1, x1,2, ..., x1,N1, Z2, x2,1, x2,2, ..., x2,N2, Z3, ...
N1, y1,1, y1,2, ..., y1,N1, N2, y2,1, y2,2, ..., y2,N2, N3, ...

Le colonne della matrice definiscono le linee di contorno. Ciascuna linea di contorno inizia con una colonna contenente i valori Z e N:

  • Zi: altezza della i-esima linea di contorno

  • Ni: il numero di vertici nell'i-esima linea di contorno

  • (xij, yij): le coordinate dei vertici dell'i-esima linea di contorno, dove j va da 1 a Ni

Oggetto Contour. Utilizzare questo oggetto per impostare le proprietà dopo aver visualizzato il grafico di contorno.

Funzionalità estese

espandi tutto

Cronologia versioni

Introduzione prima di R2006a