surf
Grafico di superficie

Descrizione
surf(
crea un grafico di superficie tridimensionale, che è una superficie tridimensionale con colori a tinta unita per i bordi e per le facce. La funzione traccia i valori della matrice X
,Y
,Z
)Z
come altezze sopra una griglia nel piano x-y definito da X
e Y
. Il colore della superficie varia in base alle altezze specificate da Z
.
surf(
crea un grafico di superficie e utilizza gli indici di colonna e di riga degli elementi di Z
)Z
come coordinate x e y.
surf(
traccia sugli assi specificati da ax
,___)ax
anziché su quelli correnti. Specificare gli assi come primo argomento di input.
surf(___,
specifica le proprietà della superficie utilizzando uno o più argomenti della coppia nome-valore. Ad esempio, Name,Value
)'FaceAlpha',0.5
crea una superficie semitrasparente.
s = surf(___)
restituisce l'oggetto superficie del grafico. Utilizzare s
per modificare la superficie dopo che è stata creata. Per un elenco delle proprietà, vedere Surface Properties.
Esempi
Creare tre matrici della stessa grandezza. Quindi tracciarle come superficie. Il grafico di superficie utilizza Z
per l'altezza e il colore.
[X,Y] = meshgrid(1:0.5:10,1:20); Z = sin(X) + cos(Y); surf(X,Y,Z)
Specificare i colori per un grafico di superficie includendo una quarta matrice di input C
. Il grafico di superficie utilizza Z
per l'altezza e C
per il colore. Specificare i colori utilizzando una mappa dei colori che utilizza numeri singoli per indicare i colori di uno spettro. Quando si utilizza una mappa dei colori, C
ha la stessa grandezza di Z
. Aggiungere una barra dei colori al grafico per mostrare come i valori dei dati in C
corrispondono ai colori della mappa dei colori.
[X,Y] = meshgrid(1:0.5:10,1:20); Z = sin(X) + cos(Y); C = X.*Y; surf(X,Y,Z,C) colorbar
Specificare i colori per un grafico di superficie includendo una quarta matrice di input CO
. Il grafico di superficie utilizza Z
per l'altezza e CO
per il colore. Specificare i colori utilizzando truecolor che utilizza triplette di numeri per indicare tutti i colori possibili. Quando si utilizza truecolor, se Z
è m
x n
, CO
è m
x n
x 3. La prima pagina dell'array indica il componente rosso di ciascun colore, la seconda pagina indica il componente verde e la terza pagina indica il componente blu.
[X,Y,Z] = peaks(25); CO(:,:,1) = zeros(25); % red CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green CO(:,:,3) = ones(25).*linspace(0,1,25); % blue surf(X,Y,Z,CO)
Creare una superficie semitrasparente specificando la coppia nome-valore FaceAlpha
con 0.5
come valore. Per consentire ulteriori modifiche, assegnare l'oggetto superficie alla variabile s
.
[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = surf(X,Y,Z,'FaceAlpha',0.5)
s = Surface with properties: EdgeColor: [0 0 0] LineStyle: '-' FaceColor: 'flat' FaceLighting: 'flat' FaceAlpha: 0.5000 XData: [21x21 double] YData: [21x21 double] ZData: [21x21 double] CData: [21x21 double] Use GET to show all properties
Utilizzare s
per accedere e modificare le proprietà dell'oggetto superficie dopo che è stato creato. Ad esempio, nascondere i bordi impostando la proprietà EdgeColor
.
s.EdgeColor = 'none';
Argomenti di input
Coordinate x, specificate come matrice della stessa grandezza di Z
o come vettore di lunghezza n
, dove [m,n] = size(Z)
. Se non si specificano valori per X
e Y
, surf
utilizza i vettori (1:n)
e (1:m)
.
È possibile utilizzare la funzione meshgrid
per creare matrici X
e Y
.
La proprietà XData
dell'oggetto Surface
memorizza le coordinate x.
Esempio X = 1:10
Esempio X = [1 2 3; 1 2 3; 1 2 3]
Esempio [X,Y] = meshgrid(-5:0.5:5)
Tipi di dati: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Coordinate y, specificate come matrice della stessa grandezza di Z
o come vettore di lunghezza m
, dove [m,n] = size(Z)
. Se non si specificano valori per X
e Y
, surf
utilizza i vettori (1:n)
e (1:m)
.
È possibile utilizzare la funzione meshgrid
per creare le matrici X
e Y
.
La proprietà YData
dell'oggetto superficie memorizza le coordinate y.
Esempio Y = 1:10
Esempio Y = [1 1 1; 2 2 2; 3 3 3]
Esempio [X,Y] = meshgrid(-5:0.5:5)
Tipi di dati: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Coordinate z, specificate come matrice. Z
deve avere almeno due righe e due colonne.
Z
specifica l'altezza del grafico di superficie per ogni coordinata x-y. Se non si specificano i colori, Z
specifica anche i colori della superficie.
La proprietà ZData
dell'oggetto superficie memorizza le coordinate z.
Esempio Z = [1 2 3; 4 5 6]
Esempio Z = sin(x) + cos(y)
Tipi di dati: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Array di colori, specificato come matrice m
x n
degli indici della mappa dei colori o come array m
x n
x 3
di triplette RGB, dove Z
è m
x n
.
Per utilizzare i colori della mappa dei colori, specificare
C
come una matrice. Per ciascun punto della griglia sulla superficie,C
indica un colore della mappa dei colori. La proprietàCDataMapping
dell'oggetto superficie controlla il modo in cui i valori inC
corrispondono ai colori della mappa dei colori.Per utilizzare i colori truecolor, specificare
C
come array di triplette RGB.
Per maggiori informazioni, vedere Differences Between Colormaps and Truecolor.
La proprietà CData
dell'oggetto superficie memorizza l'array di colori. Per un ulteriore controllo sulla colorazione della superficie, utilizzare le proprietà FaceColor
e EdgeColor
.
Assi da tracciare in, specificati come oggetto axes
. Se non si specificano gli assi, surf
traccia gli assi correnti.
Argomenti nome-valore
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 surf(X,Y,Z,'FaceAlpha',0.5,'EdgeColor','none')
crea una superficie semitrasparente senza bordi disegnati.
Nota
Le proprietà qui elencate sono solo un sottoinsieme. Per un elenco completo, vedere Surface Properties.
Colore della linea del bordo, specificato come uno dei valori qui elencati. Il colore predefinito di [0 0 0]
corrisponde a bordi neri.
Valore | Descrizione |
---|---|
'none' | Non disegna i bordi. |
'flat' | Utilizza un colore diverso per ciascun bordo in base ai valori della proprietà |
'interp' | Utilizza una colorazione interpolata per ciascun bordo in base ai valori della proprietà
|
Tripletta RGB, codice di colore esadecimale o nome del colore | Utilizza il colore specificato per tutti i bordi. Questa opzione non utilizza i valori di colore della proprietà
|
Le triplette RGB e i codici di colore esadecimali sono utili per specificare i colori personalizzati.
Una tripletta RGB è un vettore riga a tre elementi i cui elementi specificano le intensità dei componenti rosso, verde e blu del colore. Le intensità devono essere comprese nell'intervallo
[0,1]
; ad esempio,[0.4 0.6 0.7]
.Un codice di colore esadecimale è un vettore di caratteri o uno scalare di stringa che inizia con un simbolo cancelletto (
#
) seguito da tre o sei cifre esadecimali che possono andare da0
aF
. I valori non differenziano tra maiuscole e minuscole. Quindi, i codici di colore"#FF8800"
,"#ff8800"
,"#F80"
e"#f80"
sono equivalenti.
In alternativa, è possibile specificare alcuni colori comuni per nome. Questa tabella elenca le opzioni di colore denominate, le terzine RGB equivalenti e i codici colore esadecimali.
Nome del colore | Nome abbreviato | Tripletta RGB | Codice di colore esadecimale | Aspetto |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
Si riportano di seguito le triplette RGB e i codici di colore esadecimale per i colori predefiniti che MATLAB® utilizza in molti tipi di grafici.
Tripletta RGB | Codice di colore esadecimale | Aspetto |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
Stile delle linee, specificato come una delle opzioni elencate in questa tabella.
Stile delle linee | Descrizione | Linea risultante |
---|---|---|
"-" | Linea continua |
|
"--" | Linea tratteggiata |
|
":" | Linea punteggiata |
|
"-." | Linea a tratti e punti |
|
"none" | Nessuna linea | Nessuna linea |
Colore della faccia, specificato come uno dei valori nella tabella sottostante.
Valore | Descrizione |
---|---|
'flat' | Utilizza un colore diverso per ciascuna faccia in base ai valori della proprietà |
'interp' | Utilizza una colorazione interpolata per ciascuna faccia in base ai valori della proprietà
|
Tripletta RGB, codice di colore esadecimale o nome del colore | Utilizza il colore specificato per tutte le facce. Questa opzione non utilizza i valori di colore della proprietà
|
'texturemap' | Trasforma i dati del colore in CData in modo che siano conformi alla superficie. |
'none' | Non disegna le facce. |
Le triplette RGB e i codici di colore esadecimali sono utili per specificare i colori personalizzati.
Una tripletta RGB è un vettore riga a tre elementi i cui elementi specificano le intensità dei componenti rosso, verde e blu del colore. Le intensità devono essere comprese nell'intervallo
[0,1]
; ad esempio,[0.4 0.6 0.7]
.Un codice di colore esadecimale è un vettore di caratteri o uno scalare di stringa che inizia con un simbolo cancelletto (
#
) seguito da tre o sei cifre esadecimali che possono andare da0
aF
. I valori non differenziano tra maiuscole e minuscole. Quindi, i codici di colore"#FF8800"
,"#ff8800"
,"#F80"
e"#f80"
sono equivalenti.
In alternativa, è possibile specificare alcuni colori comuni per nome. Questa tabella elenca le opzioni di colore denominate, le terzine RGB equivalenti e i codici colore esadecimali.
Nome del colore | Nome abbreviato | Tripletta RGB | Codice di colore esadecimale | Aspetto |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
Si riportano di seguito le triplette RGB e i codici di colore esadecimale per i colori predefiniti che MATLAB utilizza in molti tipi di grafici.
Tripletta RGB | Codice di colore esadecimale | Aspetto |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
Trasparenza della faccia, specificata come uno dei seguenti valori:
Scalare nell'intervallo
[0,1]
: utilizza una trasparenza uniforme su tutte le facce. Un valore di1
è completamente opaco, mentre0
è completamente trasparente. I valori compresi tra0
e1
sono semitrasparenti. Questa opzione non utilizza i valori di trasparenza della proprietàAlphaData
.'flat'
: utilizza una trasparenza diversa per ciascuna faccia in base ai valori della proprietàAlphaData
. Il valore della trasparenza del primo vertice determina la trasparenza dell'intera faccia. Per prima cosa è necessario specificare la proprietàAlphaData
come matrice della stessa grandezza della proprietàZData
. Anche la proprietàFaceColor
deve essere impostata su'flat'
.'interp'
: utilizza la trasparenza interpolata per ciascuna faccia in base ai valori della proprietàAlphaData
. La trasparenza varia su ciascuna faccia interpolando i valori ai vertici. Per prima cosa è necessario specificare la proprietàAlphaData
come matrice della stessa grandezza della proprietàZData
. Anche la proprietàFaceColor
deve essere impostata su'interp'
.'texturemap'
: trasforma i dati inAlphaData
in modo che siano conformi alla superficie.
Effetto degli oggetti luce sulle facce, specificato come uno di questi valori:
'flat'
: applica la luce in modo uniforme su tutta la faccia. Utilizzare questo valore per visualizzare gli oggetti sfaccettati.'gouraud'
: varia la luce sulle facce. Calcola la luce sui vertici e poi la interpola linearmente sulle facce. Utilizzare questo valore per visualizzare le superfici curve.'none'
: non applica la luce degli oggetti luce sulle facce.
Per aggiungere un oggetto luce agli assi, utilizzare la funzione light
.
Nota
Il valore 'phong'
è stato rimosso. Utilizzare invece 'gouraud'
.
Funzionalità estese
La funzione surf
supporta l'input di array GPU con queste note su utilizzo e limitazioni:
Questa funzione accetta gli array di GPU, ma non viene eseguita su una GPU.
Per maggiori informazioni, vedere Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Note su utilizzo e limitazioni:
Questa funzione opera su array distribuiti, ma viene eseguita nel client di MATLAB.
Per maggiori informazioni, vedere Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Cronologia versioni
Introduzione prima di R2006a
Vedi anche
Funzioni
Proprietà
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)