HOWTO · MATLAB
MATLAB RGB Triplet
Apprenez à définir les couleurs des tracés MATLAB avec des triplets RGB pour les lignes, les points de nuages de points et les barres individuelles.
Sur cette page
Pour définir une couleur de tracé personnalisée dans MATLAB, utilisez un triplet RGB : un vecteur à trois éléments dans l’ordre rouge, vert, bleu, chaque composante allant de 0 à 1. Définissez la propriété Color d’une ligne avec un seul triplet, ou fournissez une matrice N-par-3 pour colorer individuellement N points d’un nuage de points ou N barres.
Comprendre les triplets RGB dans MATLAB
Un triplet RGB stocke les intensités du rouge, du vert et du bleu, dans cet ordre. Par exemple, [1 0 0] est le rouge, [0 1 0] est le vert et [0 0 1] est le bleu. Le mélange des composantes crée d’autres couleurs : [0.5 0.5 0] combine le rouge et le vert en un jaune atténué. Une composante de 0 ne contribue en rien à cette couleur ; 1 contribue à son intensité maximale.
Utilisez un seul triplet lorsqu’un objet graphique entier doit partager une couleur. Pour des couleurs par point ou par barre, disposez un triplet par ligne dans une matrice N-par-3, où N est le nombre d’éléments tracés.
Définir la couleur d’une ligne avec un triplet RGB
La propriété Color d’un objet ligne accepte un seul triplet RGB. Cet exemple complet trace une courbe sinusoïdale et donne à sa ligne une couleur rougeâtre personnalisée.
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;
Modifiez les trois valeurs pour ajuster l’intensité du rouge, du vert et du bleu. Gardez chacune dans la plage de 0 à 1 ; le même triplet s’applique à toute la ligne.
Attribuer des couleurs RGB aux points d’un nuage de points
Pour des couleurs individuelles de points, transmettez une matrice de couleurs N-par-3 à scatter. Chaque ligne correspond au point situé à la même position dans les vecteurs x et y. L’exemple complet suivant utilise quatre points et attribue à chacun une couleur distincte.
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 doit comporter une ligne pour chaque point, et ses trois colonnes contiennent les valeurs de rouge, de vert et de bleu. Si vous transmettez un seul triplet, les points partagent cette couleur.
Définir des couleurs de barres individuelles avec des triplets RGB
Dans MATLAB, définissez la propriété FaceColor de l’objet barre à 'flat' et attribuez une matrice N-par-3 à son CData ; chaque ligne fournit la couleur d’une barre. Par exemple, après avoir créé bars = bar(values), utilisez bars.FaceColor = 'flat'; bars.CData = colors;. Cette interface d’objet Bar est propre à MATLAB. L’exemple Octave exécutable ci-dessous dessine chaque barre comme un patch afin que chaque rectangle puisse recevoir son triplet RGB correspondant.
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;
Pour une seule série de barres MATLAB, les lignes de CData correspondent aux barres dans l’ordre. Si toutes les barres doivent être identiques, définissez FaceColor directement avec un seul triplet RGB au lieu d’utiliser la coloration de faces « flat » et une matrice de couleurs. Le handle bar d’Octave n’expose pas la propriété Bar.CData de MATLAB, utilisez donc des objets patch dans ce cas pour attribuer des couleurs de faces distinctes.