HOWTO · MATLAB

MATLAB RGB Triplet

Aprenda a definir as cores de gráficos do MATLAB com tripletos RGB para linhas, pontos de dispersão e barras individuais.

Nesta página

Para definir uma cor de gráfico personalizada no MATLAB, use um tripleto RGB: um vetor de três elementos na ordem vermelho, verde e azul, com cada componente de 0 a 1. Defina a propriedade Color de uma linha como um único tripleto ou forneça uma matriz N por 3 para colorir individualmente N pontos de dispersão ou barras.

Entendendo os tripletos RGB no MATLAB

Um tripleto RGB armazena as intensidades de vermelho, verde e azul, nessa ordem. Por exemplo, [1 0 0] é vermelho, [0 1 0] é verde e [0 0 1] é azul. Misturar os componentes cria outras cores: [0.5 0.5 0] combina vermelho e verde em um amarelo suave. Um componente de 0 não contribui com nada dessa cor; 1 contribui com sua intensidade total.

Use um único tripleto quando um objeto gráfico inteiro deve compartilhar uma cor. Para cores por ponto ou por barra, organize um tripleto por linha em uma matriz N por 3, em que N é o número de itens plotados.

Definir a cor de uma linha com um tripleto RGB

A propriedade Color de um objeto de linha aceita um único tripleto RGB. Este exemplo completo plota uma curva senoidal e define sua linha como uma cor avermelhada personalizada.

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;

Altere os três valores para ajustar a intensidade de vermelho, verde e azul. Mantenha cada um dentro do intervalo de 0 a 1; o mesmo tripleto se aplica a toda a linha.

Atribuir cores RGB aos pontos de um gráfico de dispersão

Para cores individuais de pontos, passe uma matriz de cores N por 3 para scatter. Cada linha corresponde ao ponto na mesma posição nos vetores x e y. O exemplo completo a seguir usa quatro pontos e dá a cada um uma cor distinta.

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;

A matriz deve ter uma linha para cada ponto, e suas três colunas contêm valores de vermelho, verde e azul. Se você passar um único tripleto, os pontos compartilham essa cor.

Definir cores individuais de barras com tripletos RGB

No MATLAB, defina a propriedade FaceColor do objeto de barra como 'flat' e atribua uma matriz N por 3 ao seu CData; cada linha fornece a cor de uma barra. Por exemplo, depois de criar bars = bar(values), use bars.FaceColor = 'flat'; bars.CData = colors;. Essa interface de objeto Bar é específica do MATLAB. O exemplo executável em Octave abaixo desenha cada barra como um patch para que cada retângulo possa receber seu tripleto RGB correspondente.

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;

Para uma única série de barras do MATLAB, as linhas de CData correspondem às barras em ordem. Se todas as barras devem ser iguais, defina FaceColor diretamente como um único tripleto RGB em vez de usar a coloração plana de faces e uma matriz de cores. O identificador bar do Octave não expõe a propriedade Bar.CData do MATLAB, portanto use objetos patch nesse caso ao atribuir cores de face distintas.