Definizione dei colori dei grafici
MATLAB® crea i grafici utilizzando un set predefinito di colori. I colori predefiniti garantiscono un aspetto chiaro e coerente tra i diversi grafici creati. Se necessario, è possibile personalizzare i colori. Molte funzioni di plottaggio presentano un argomento di input come c
o colorspec
per personalizzare il colore. Gli oggetti restituiti da queste funzioni hanno in genere proprietà atte a controllare il colore. I nomi degli argomenti e delle proprietà possono variare, ma i valori accettati seguono in genere un pattern comune. Una volta acquisita familiarità con il pattern, è possibile utilizzarlo per modificare un'ampia gamma di grafici.
Gli esempi seguenti utilizzano le funzioni bar
e scatter
per dimostrare l'approccio generale alla personalizzazione dei colori. Per un elenco completo dei valori di colore validi per una specifica funzione di plottaggio, fare riferimento alla documentazione relativa a tale funzione.
Tipi di valori di colore
I tipi di valori di colore sono i seguenti:
Nome del colore o nome breve: specificare il nome di un colore come
"red"
o"green"
. I nomi brevi specificano una lettera del nome del colore, come"r"
o"g"
.Tripletta RGB: creare un colore personalizzato specificando un vettore riga a tre elementi i cui elementi sono le intensità dei componenti rosso, verde e blu di un colore. Le intensità devono essere comprese nell'intervallo
[0,1]
. Ad esempio, è possibile specificare una tonalità di rosa come[1 0.5 0.8]
.Alcuni argomenti delle funzioni che controllano il colore non accettano le triplette RGB, ma accettano generalmente le proprietà degli oggetti che controllano il colore.
Codice di colore esadecimale: creare un colore personalizzato specificando una stringa o un vettore di caratteri che inizia con un simbolo hash (
#
) seguito da tre o sei cifre esadecimali, che possono variare da0
aF
. I valori non differenziano tra maiuscole e minuscole. Pertanto, i codici di colore"#FF8800"
,"#ff8800"
,"#F80"
e"#f80"
specificano tutti la stessa tonalità di arancione.Alcuni argomenti delle funzioni che controllano il colore non accettano i codici di colore esadecimali, ma è possibile specificare un codice di colore esadecimale utilizzando un argomento nome-valore che corrisponde a una proprietà dell'oggetto. Ad esempio,
scatter(x,y,sz,"MarkerFaceColor","#FF8800")
imposta il colore del marcatore in un grafico a dispersione su arancione.
La tabella seguente elenca tutti i nomi di colore e i nomi brevi validi con le corrispondenti triplette RGB e i codici di 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. A questi colori non sono associati nomi.
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" |
Definizione del colore di un grafico a barre
Creare un grafico a barre rosse chiamando la funzione bar
e specificando l'argomento opzionale color
come "red"
. Restituire l'oggetto barra come b
in modo da poter personalizzare altri aspetti del grafico in seguito.
b = bar(1:10,"red");
Ora, modificare il colore di riempimento della barra e il colore del contorno in azzurro impostando le proprietà FaceColor
e EdgeColor
sul codice di colore esadecimale "#80B3FF"
.
Per le release antecedenti alla R2019a, specificare una tripletta RGB anziché un codice di colore esadecimale. Ad esempio,b.FaceColor = [0.5 0.7 1]
.
b.FaceColor = "#80B3FF"; b.EdgeColor = "#80B3FF";
Definizione dei colori dei marcatori in un grafico a dispersione
Creare un grafico a dispersione di numeri casuali. Specificare la dimensione del marcatore come 75
punti e utilizzare gli argomenti nome-valore per specificare i colori del contorno e del riempimento del marcatore. La proprietà MarkerEdgeColor
controlla il colore del contorno mentre la proprietà MarkerFaceColor
controlla il colore di riempimento.
x = rand(1,100); y = rand(1,100); scatter(x,y,75,"MarkerEdgeColor","b", ... "MarkerFaceColor",[0 0.7 0.7])
Definizione dei colori in una serie di grafici
Esistono due modi per creare una serie di grafici:
Chiamare più volte una funzione di plottaggio e utilizzare la funzione
hold
per mantenere il contenuto degli assi.Passare una matrice contenente più serie di dati alla funzione di plottaggio. La funzione
plot
ha sempre accettato input a matrice così come molte altre funzioni di plottaggio.
Per specificare i colori con entrambi gli approcci, chiamare la funzione di plottaggio desiderata con un argomento di output in modo da poter accedere ai singoli oggetti del grafico. Quindi impostare le proprietà dell'oggetto del grafico che si desidera modificare.
Ad esempio, creare un grafico a dispersione con marcatori riempiti a 100 punti. Chiamare la funzione scatter
con un argomento di output s1
. Chiamare la funzione hold
per mantenere il contenuto degli assi, quindi chiamare la funzione scatter
altre due volte con gli argomenti di output s2
e s3
. Le variabili s1
, s2
e s3
sono oggetti Scatter
.
figure x = 1:5; s1 = scatter(x,[6 3 9 10 7],100,"filled"); hold on s2 = scatter(x,[16 13 19 20 17],100,"filled"); s3 = scatter(x,[26 23 29 33 27],100,"filled"); hold off
Modificare il colore del secondo oggetto Scatter
in una tonalità di viola.
s2.MarkerFaceColor = [0.7 0 1];
La funzione scatter
supporta inoltre gli input a matrice (dalla release R2021a), per cui è possibile creare lo stesso grafico passando una matrice e restituendo un vettore di oggetti.
figure
x = 1:5;
y = [6 3 9 10 7; 16 13 19 20 17; 26 23 29 33 27];
s = scatter(x,y,100,"filled");
In questo caso, per modificare il colore della seconda serie di dati accedere al secondo oggetto Scatter
indicizzando su s
.
s(2).MarkerFaceColor = [0.7 0 1];
Vedi anche
Funzioni
scatter
|bar
|validatecolor