HOWTO · MATLAB

MATLAB RGB Triplet

Scopri come impostare i colori dei grafici MATLAB con triplette RGB per linee, punti di dispersione e singole barre.

In questa pagina

Per impostare un colore personalizzato per un grafico in MATLAB, usa una tripletta RGB: un vettore di tre elementi nell’ordine rosso, verde, blu, con ogni componente compresa tra 0 e 1. Imposta la proprietà Color di una linea su una singola tripletta, oppure fornisci una matrice N per 3 per colorare singolarmente N punti di dispersione o N barre.

Comprendere le triplette RGB in MATLAB

Una tripletta RGB memorizza le intensità di rosso, verde e blu, in quest’ordine. Ad esempio, [1 0 0] è il rosso, [0 1 0] è il verde e [0 0 1] è il blu. Mescolando le componenti si creano altri colori: [0.5 0.5 0] combina rosso e verde in un giallo attenuato. Una componente pari a 0 non contribuisce affatto a quel colore; 1 contribuisce con la sua intensità massima.

Usa una singola tripletta quando un intero oggetto grafico deve condividere un colore. Per colori distinti per punto o per barra, disponi una tripletta per riga in una matrice N per 3, dove N è il numero di elementi tracciati.

Impostare il colore di una linea con una tripletta RGB

La proprietà Color di un oggetto linea accetta una singola tripletta RGB. Questo esempio completo traccia una curva sinusoidale e imposta la sua linea su un colore rossastro personalizzato.

warning('off', 'Octave:gnuplot-graphics');
set(0, 'defaultfigurevisible', 'off');
x = 0:0.1:10;
y = sin(x);
plot(x, y, 'Color', [0.8 0.2 0.2], 'LineWidth', 2);
title('Sine Wave with Custom Color');
xlabel('X-axis');
ylabel('Y-axis');
grid on;

Modifica i tre valori per regolare l’intensità di rosso, verde e blu. Mantieni ciascuno nell’intervallo da 0 a 1; la stessa tripletta si applica all’intera linea.

Assegnare colori RGB ai punti di un grafico a dispersione

Per colori individuali dei punti, passa una matrice di colori N per 3 a scatter. Ogni riga corrisponde al punto nella stessa posizione nei vettori x e y. L’esempio completo seguente usa quattro punti e assegna a ciascuno un colore distinto.

warning('off', 'Octave:gnuplot-graphics');
set(0, 'defaultfigurevisible', 'off');
x = [1 2 3 4];
y = [2 4 3 5];
colors = [1 0 0; 0 1 0; 0 0 1; 0.8 0.4 0];
scatter(x, y, 80, colors, 'filled');
xlabel('X');
ylabel('Y');
title('Scatter Points with RGB Colors');
grid on;

La matrice deve avere una riga per ogni punto, e le sue tre colonne contengono i valori di rosso, verde e blu. Se passi una singola tripletta, i punti condividono quel colore.

Impostare colori individuali per le barre con triplette RGB

In MATLAB, imposta la proprietà FaceColor dell’oggetto barra su 'flat' e assegna una matrice N per 3 al suo CData; ogni riga fornisce il colore di una barra. Ad esempio, dopo aver creato bars = bar(values), usa bars.FaceColor = 'flat'; bars.CData = colors;. Questa interfaccia dell’oggetto Bar è specifica di MATLAB. L’esempio Octave eseguibile qui sotto disegna ogni barra come una patch, in modo che ogni rettangolo possa ricevere la sua tripletta RGB corrispondente.

warning('off', 'Octave:gnuplot-graphics');
set(0, 'defaultfigurevisible', 'off');
values = [3 5 2 8];
colors = [0.2 0.6 0.8; 0.8 0.2 0.2; 0.2 0.8 0.2; 0.5 0.5 0.2];
hold on;
for k = 1:numel(values)
  x = k;
  patch([x-0.4 x+0.4 x+0.4 x-0.4], [0 0 values(k) values(k)], colors(k,:));
end
set(gca, 'XTick', 1:numel(values), 'XTickLabel', {'A', 'B', 'C', 'D'});
xlim([0.5 numel(values)+0.5]);
xlabel('Category');
ylabel('Value');
title('Bars with Individual RGB Colors');
grid on;

Per una singola serie di barre MATLAB, le righe di CData corrispondono alle barre in ordine. Se tutte le barre devono corrispondere, imposta FaceColor direttamente su una singola tripletta RGB invece di usare la colorazione piatta delle facce e una matrice di colori. L’handle bar di Octave non espone la proprietà Bar.CData di MATLAB, quindi in quel caso usa oggetti patch per assegnare colori distinti alle facce.