HOWTO · MATLAB
Triplete RGB de MATLAB
Aprende a definir los colores de los gráficos de MATLAB con tripletes RGB para líneas, puntos de dispersión y barras individuales.
En esta página
Para establecer un color personalizado en una gráfica de MATLAB, usa un triplete RGB: un vector de tres elementos en el orden rojo, verde y azul, con cada componente entre 0 y 1. Asigna un triplete a la propiedad Color de una línea o proporciona una matriz N×3 para colorear individualmente N puntos de dispersión o barras.
Cómo entender los tripletes RGB en MATLAB
Un triplete RGB almacena las intensidades de rojo, verde y azul, en ese orden. Por ejemplo, [1 0 0] representa el rojo, [0 1 0] el verde y [0 0 1] el azul. Al combinar componentes se obtienen otros colores: [0.5 0.5 0] mezcla rojo y verde para producir un amarillo apagado. Un valor de 0 no aporta intensidad de ese color; un valor de 1 aporta toda su intensidad.
Usa un solo triplete cuando quieras que todo un objeto gráfico tenga el mismo color. Para asignar colores distintos a cada punto o barra, coloca un triplete por fila en una matriz N×3, donde N es el número de elementos representados.
Establecer el color de una línea con un triplete RGB
La propiedad Color de un objeto de línea acepta un triplete RGB. Este ejemplo completo representa una curva seno y asigna a la línea un tono rojizo personalizado.
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;
Cambia los tres valores para ajustar la intensidad del rojo, el verde y el azul. Mantén cada valor entre 0 y 1; el mismo triplete se aplica a toda la línea.
Asignar colores RGB a los puntos de una gráfica de dispersión
Para asignar colores individuales, pasa una matriz de colores N×3 a scatter. Cada fila corresponde al punto situado en la misma posición de los vectores x e y. El siguiente ejemplo completo usa cuatro puntos y asigna un color distinto a cada uno.
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 matriz debe tener una fila por cada punto y sus tres columnas contienen los valores de rojo, verde y azul. Si pasas un solo triplete, todos los puntos comparten ese color.
Establecer colores individuales para las barras con tripletes RGB
En MATLAB, establece en 'flat' la propiedad FaceColor del objeto de barras y asigna una matriz N×3 a CData; cada fila proporciona el color de una barra. Por ejemplo, después de crear bars = bar(values), usa bars.FaceColor = 'flat'; bars.CData = colors;. Esta interfaz del objeto Bar es específica de MATLAB. El siguiente ejemplo ejecutable de Octave dibuja cada barra como un parche para que cada rectángulo reciba su triplete RGB correspondiente.
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 una serie de barras de MATLAB, las filas de CData se asignan a las barras en orden. Si quieres que todas tengan el mismo color, asigna un único triplete RGB directamente a FaceColor, en lugar de usar el coloreado plano de las caras y una matriz de colores. El controlador bar de Octave no expone la propiedad Bar.CData de MATLAB, así que, para asignar colores de cara distintos, usa allí objetos patch.