Especificar colores de gráfica
MATLAB® crea gráficas utilizando un conjunto predeterminado de colores. Los colores predeterminados proporcionan un aspecto limpio y consistente entre las distintas gráficas que crea. Puede personalizar los colores, si así lo necesita. Muchas funciones de representación tienen un argumento de entrada, como c
o colorspec
para personalizar el color. Los objetos que devuelven estas funciones suelen tener propiedades para controlar el color. Los nombres y los argumentos de las propiedades pueden variar, pero los valores que aceptan suelen seguir un patrón común. Una vez que se haya familiarizado con el patrón, podrá utilizarlo para modificar una amplia variedad de gráficas.
Los siguientes ejemplos utilizan las funciones bar
y scatter
para demostrar el enfoque general de personalización de los colores. Para ver una lista completa de los valores de color válidos para una función de representación específica, consulte la documentación de esa función.
Tipos de valores de color
Existen los siguientes tipos de valores de color:
Nombre del color o nombre corto: especifique el nombre de un color, como
"red"
o"green"
. Los nombres cortos especifican una letra del nombre de un color, como"r"
o"g"
.Triplete RGB: cree un color personalizado especificando un vector fila de tres elementos, cuyos elementos son las intensidades de los componentes rojo, verde y azul de un color. Las intensidades deben estar en el rango
[0,1]
. Por ejemplo, puede especificar un tono de rosa como[1 0.5 0.8]
.Algunos argumentos de función que controlan el color no aceptan tripletes RGB, pero las propiedades de objetos que controlan el color suelen admitirlos.
Código de color hexadecimal (desde la versión R2019a): cree un color personalizado especificando una cadena o un vector de caracteres que comience con el símbolo de almohadilla (
#
) seguido de tres o seis dígitos hexadecimales, que pueden oscilar entre0
yF
. Los valores no distinguen entre mayúsculas y minúsculas. Así, los códigos de color"#FF8800"
,"#ff8800"
,"#F80"
y"#f80"
especifican el mismo tono de naranja.Algunos argumentos de función que controlan el color no aceptan códigos de color hexadecimales, pero puede especificar un código de color hexadecimal utilizando un argumento nombre-valor que corresponda a una propiedad de objeto. Por ejemplo,
scatter(x,y,sz,"MarkerFaceColor","#FF8800")
establece el color del marcador en naranja en una gráfica de dispersión.
En esta tabla se enumeran todos los nombres de color y los nombres cortos válidos con los tripletes RGB y los códigos de color hexadecimales correspondientes.
Nombre del color | Nombre corto | Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|---|---|
"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" |
A continuación, se indican los tripletes RGB y los códigos de color hexadecimales de los colores predeterminados que MATLAB utiliza en muchos tipos de gráficas. Estos colores no tienen nombres asociados con ellos.
Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|
[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" |
Especificar el color de una gráfica de barras
Cree una gráfica de barras roja llamando a la función bar
y especificando el argumento color
opcional como "red"
". Devuelva el objeto de barra como b
, de forma que pueda personalizar otros aspectos de la gráfica más tarde.
b = bar(1:10,"red");
Ahora, cambie el color de relleno de las barras y el color del contorno a azul claro estableciendo las propiedades FaceColor
y EdgeColor
en el código de color hexadecimal, "#80B3FF"
".
En las versiones anteriores a R2019a, especifique un triplete RGB en lugar de un código de color hexadecimal. Por ejemplo, b.FaceColor = [0.5 0.7 1]
.
b.FaceColor = "#80B3FF"; b.EdgeColor = "#80B3FF";
Especificar colores de marcadores en un diagrama de dispersión
Cree un diagrama de dispersión de números aleatorios. Especifique el tamaño del marcador como 75
puntos y utilice argumentos nombre-valor para especificar el contorno del marcador y los colores de relleno. La propiedad MarkerEdgeColor
controla el color del contorno y MarkerFaceColor
controla el color de relleno.
x = rand(1,100); y = rand(1,100); scatter(x,y,75,"MarkerEdgeColor","b", ... "MarkerFaceColor",[0 0.7 0.7])
Especificar colores en una serie de gráficas
Existen dos formas de crear una serie de gráficas:
Llame varias veces a una función de representación y utilice la función
hold
para conservar el contenido de los ejes.Pase una matriz que contenga varias series de datos a la función de representación. La función
plot
siempre ha aceptado entradas de matrices, y muchas otras funciones de representación también admiten entradas de matrices.
Para especificar colores con cualquiera de los dos enfoques, llame a la función de representación deseada con un argumento de salida para poder acceder a los objetos de representación individuales. Después, defina las propiedades del objeto de representación que desea modificar.
Por ejemplo, cree una gráfica de dispersión con marcadores rellenos de 100 puntos. Llame a la función scatter
con un argumento de salida s1
. Llame a la función hold
para mantener los contenidos de los ejes y, después, llame a la función scatter
dos veces más con los argumentos de salida s2
y s3
. Las variables s1
, s2
y s3
son objetos 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
Cambie el color del segundo objeto Scatter
a un tono morado.
s2.MarkerFaceColor = [0.7 0 1];
La función scatter
también admite entradas de matrices (desde la versión R2021a), para poder crear la misma gráfica pasando una matriz y devolviendo un vector de objetos.
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");
Para cambiar el color de la segunda serie de datos en este caso, acceda al segundo objeto Scatter
indexándolo en s
.
s(2).MarkerFaceColor = [0.7 0 1];
Consulte también
Funciones
scatter
|bar
|validatecolor