Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.
Cuando representa juntos varios conjuntos de datos en los mismos ejes, MATLAB® asigna de forma automática colores diferentes (y posiblemente marcadores y estilos de línea) a los objetos de la gráfica. Puede personalizar los colores, los estilos de línea y los marcadores cuando llame a las funciones de representación.
Por ejemplo, este código representa una línea roja continua y una línea verde de guiones con marcadores circulares.
plot([0 1 2],'-r') hold on plot([2 1 0],'--og') hold off
También puede cambiar el color, el estilo de línea y el marcador estableciendo las propiedades en el objeto después de crearlo. Por ejemplo, este código crea una línea y, después, la cambia a una línea verde de guiones con marcadores circulares.
p = plot([0 1 2]); p.Color = 'g'; p.LineStyle = '--'; p.Marker = 'o';
Estas técnicas son útiles para personalizar solo unas líneas. Sin embargo, son menos flexibles en otras situaciones, como al representar datos en un bucle o pasar datos matriciales a funciones de representación gráfica. En tales casos, puede cambiar las propiedades que controlan cómo MATLAB asigna automáticamente los colores, estilos de línea y marcadores.
Nota
Parte de la funcionalidad de los siguientes ejemplos está disponible a partir de la versión R2019b y parte de la funcionalidad está disponible a partir de la versión R2020a. Para modificar los colores y los estilos de línea de la gráfica en una versión anterior, consulte ¿Por qué las líneas de la gráfica son de diferentes colores? y Estilos de línea utilizados para la representación: LineStyleOrder.
MATLAB asigna los colores a los objetos de la gráfica (por ejemplo, los objetos Line
, Scatter
y Bar
) alternando los colores indicados en la propiedad ColorOrder
de los ejes. La propiedad ColorOrder
contiene un arreglo de tripletes RGB, en los que cada triplete RGB define un color. El arreglo ColorOrder
predeterminado contiene siete colores. Si crea más objetos que los colores que existen, los colores se repiten.
Si los objetos de la gráfica son compatibles con los marcadores y los estilos de línea, MATLAB también alterna entre la lista en la propiedad LineStyleOrder
de los ejes. La propiedad LineStyleOrder
contiene un arreglo de celdas de secuencias de caracteres, en las que cada secuencia de caracteres se corresponde con un estilo de línea (o un estilo de línea combinado con un marcador). El arreglo LineStyleOrder
predeterminado solo contiene el estilo de línea continua, ('-')
. Todos los colores del arreglo ColorOrder
se utilizan con una secuencia de caracteres en el arreglo LineStyleOrder
antes de que se utilice la siguiente secuencia. El ciclo continúa con cada nuevo objeto de la gráfica. Si hay más objetos que combinaciones de colores y secuencias de caracteres, se repite el ciclo.
Para un par determinado de arreglos ColorOrder
y LineStyleOrder
, los colores, los estilos de línea y los marcadores de un objeto concreto de la gráfica se determinan a partir del valor de SeriesIndex
del objeto, que es una nueva propiedad disponible a partir de la versión R2020a. De forma predeterminada, la propiedad SeriesIndex
es un número que se corresponde con el orden de creación del objeto, empezando desde 1
. MATLAB utiliza el número para calcular los índices en los arreglos ColorOrder
y LineStyleOrder
.
Por ejemplo, cree un objeto de ejes con dos colores en su arreglo ColorOrder
(rojo y azul) y dos estilos de línea en su arreglo LineStyleOrder
(continua y de guiones). Después, represente cinco líneas.
ax = axes; ax.ColorOrder = [1 0 0; 0 0 1]; ax.LineStyleOrder = {'-','--'}; hold on for i = 1:5 plot([i i+2]) end hold off
Esta tabla muestra el SeriesIndex
, el índice en el arreglo ColorOrder
y el índice en el arreglo LineStyleOrder
para cada línea de la gráfica anterior.
SeriesIndex | Indexar en el arreglo ColorOrder | Indexar en el arreglo LineStyleOrder | Aspecto de la línea | |
---|---|---|---|---|
Primera línea | 1 | 1 | 1 | Línea continua roja |
Segunda línea | 2 | 2 | 1 | Línea continua azul |
Tercera línea | 3 | 1 | 2 | Línea de guiones roja |
Cuarta línea | 4 | 2 | 2 | Línea de guiones azul |
Quinta línea | 5 | 1 | 1 | Línea continua roja |
Puede cambiar los colores, estilos de línea y marcadores de los objetos de la gráfica modificando las propiedades ColorOrder
o LineStyleOrder
de los ejes o cambiando las propiedades SeriesIndex
de los objetos de la gráfica.
Al cambiar la propiedad ColorOrder
de los ejes, cambia el esquema de colores de la gráfica. Al cambiar la propiedad LineStyleOrder
de los ejes, cambian los estilos de línea (y posiblemente los marcadores) utilizados en la gráfica. Por ejemplo, represente ocho líneas en un bucle utilizando el estilo de línea y los colores predeterminados.
ax = axes; hold on for i = 0:7 plot([i i+2]) end hold off
Sustituya el arreglo ColorOrder
por un nuevo arreglo que contenga cuatro colores (también puede sustituir este arreglo con la función colororder
). Después, sustituya el arreglo LineStyleOrder
por un nuevo arreglo de celdas que contenga dos estilos de línea. Las líneas utilizan automáticamente los nuevos colores y estilos de línea.
% Updates existing plots in R2019b or later ax.ColorOrder = [1 0 0; 0 1 0; 0 0 1; 0 0 0]; ax.LineStyleOrder = {'-','--'};
ColorOrder
y LineStyleOrder
Al cambiar la propiedad SeriesIndex
en un objeto de la gráfica, cambian los índices en los arreglos ColorOrder
y LineStyleOrder
. Cambiar los índices es útil cuando desea que el color, el estilo de línea y el marcador de un objeto se correspondan con los de otro objeto.
Por ejemplo, represente cuatro ondas sinusoidales en un bucle, variando la longitud de onda y la fase. En cada onda sinusoidal, establezca la propiedad SeriesIndex
según la longitud de onda. En la gráfica resultante, las ondas sinusoidales que tienen la misma longitud de onda también tienen el mismo color.
x = linspace(0,10,200); ax = axes; hold on for phi = 0:3:3 for t = 1:2 plot(x,sin(x/t + phi),'SeriesIndex',t) % Requires R2020a or later end end hold off
Para hacer que un par de ondas sinusoidales sea más prominente, cambie el orden de colores a un conjunto de colores diferente.
ax.ColorOrder = [0.8 0.8 0.9; 0.2 0.2 0.8];
colororder
| gca
| plot