Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Mostrar datos con varias escalas y límites de ejes

Puede usar varias técnicas para mostrar datos con varias escalas y límites de ejes. Por ejemplo, puede usar la función yyaxis para crear gráficas con dos ejes y. Para crear gráficas con varios ejes x e y y varias barras de colores, o para crear una gráfica con un eje discontinuo dividido en intervalos, utilice la función tiledlayout.

Mostrar datos con dos ejes y

Utilice la función yyaxis para crear una gráfica con dos ejes y. Por ejemplo, puede utilizar dos ejes y para representar dos líneas en diferentes escalas.

Cree un objeto de ejes y active el eje y izquierdo llamando a yyaxis left. Después, represente una onda sinusoidal.

figure
yyaxis left
x = linspace(0,10);
y = sin(3*x);
plot(x,y)

Figure contains an axes object. The axes object contains an object of type line.

Active el eje y derecho llamando a yyaxis right. Después, represente una onda sinusoidal amplificada.

yyaxis right
y2 = sin(3*x).*exp(0.5*x);
plot(x,y2)

Figure contains an axes object. The axes object contains 2 objects of type line.

Mostrar datos con varios ejes x y ejes y

Desde la versión R2019b

Para representar dos conjuntos de datos con ejes x e y separados, cree dos objetos de ejes separados en un diseño de gráfica segmentado. Dentro de uno de los objetos de ejes, mueva el eje x a la parte superior del cuadro de la gráfica y el eje y a la derecha del cuadro de la gráfica.

Por ejemplo, puede crear dos gráficas con distintos límites de los ejes x e y.

En primer lugar, cree dos conjuntos de coordenadas x e y.

x1 = 0:0.1:40;
y1 = 4.*cos(x1)./(x1+2);
x2 = 1:0.2:20;
y2 = x2.^2./x2.^3;

Cree un diseño de gráfica segmentado y un objeto de ejes. Después, represéntelo en los ejes:

  • Cree un diseño de gráfica segmentado t de 1 por 1.

  • Cree un objeto de ejes ax1 llamando a la función axes y especificando t como el objeto principal.

  • Represente x1 e y1 como una línea roja y especifique ax1 como los ejes objetivo.

  • Cambie el color de los ejes x e y para que coincidan con la línea representada. La configuración de las propiedades de los ejes después de representarlos garantiza que se mantengan los ajustes.

t = tiledlayout(1,1);
ax1 = axes(t);
plot(ax1,x1,y1,'-r')
ax1.XColor = 'r';
ax1.YColor = 'r';

Figure contains an axes object. The axes object contains an object of type line.

Cree un segundo objeto de ejes y represente el segundo conjunto de datos en negro en lugar de en rojo. Después, establezca las propiedades del segundo objeto de ejes para mover los ejes x e y, y asegurarse de que ninguna de las gráficas oculte la otra.

  • Cree un objeto de ejes ax2 llamando a la función axes y especificando t como el objeto principal.

  • Represente x2 e y2 como una línea negra y especifique ax2 como los ejes objetivo.

  • Mueva el eje x a la parte superior y el eje y a la derecha.

  • Establezca el color del objeto de ejes en 'none' para que la gráfica subyacente sea visible.

  • Desactive los cuadros de las gráficas para evitar que los bordes de los cuadros oculten los ejes x e y.

ax2 = axes(t);
plot(ax2,x2,y2,'-k')
ax2.XAxisLocation = 'top';
ax2.YAxisLocation = 'right';
ax2.Color = 'none';
ax1.Box = 'off';
ax2.Box = 'off';

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

Representar datos en un eje x discontinuo

Desde la versión R2019b

Puede utilizar un diseño de gráfica segmentado para dar la apariencia de una gráfica dividida en intervalos a lo largo de un eje. Por ejemplo, puede excluir una sección del eje x para centrarse en otras regiones de interés.

Cree los vectores de las coordenadas x e y.

x = 0:0.1:60;
y = 4.*cos(x)./(x+2);

Cree un diseño de gráfica segmentado que contenga dos mosaicos y coloque un objeto de ejes en ambos mosaicos. En la presentación final, este objeto de ejes aparecerá en el fondo, detrás de otros dos objetos de ejes. Una sección de su eje x será visible para dar la apariencia de un eje x largo.

  • Cree un diseño de gráfica segmentado t de 1 por 2 y especifique un espaciado compacto entre los mosaicos. El ajuste del espaciado entre los mosaicos permite controlar el tamaño del espacio que queda entre los intervalos del eje x.

  • Cree los ejes del fondo bgAx llamando a la función axes y especificando t como el objeto principal. Especifique los argumentos nombre-valor para eliminar todas las marcas y desactive el cuadro de la gráfica.

  • Amplíe los ejes del fondo a ambos mosaicos estableciendo la propiedad Layout.TileSpan de bgAx en [1 2].

figure
t = tiledlayout(1,2,'TileSpacing','compact');
bgAx = axes(t,'XTick',[],'YTick',[],'Box','off');
bgAx.Layout.TileSpan = [1 2];

Figure contains an axes object. The axes object is empty.

Cree un objeto de ejes delante de bgAx en el primer mosaico. Represente x e y, y establezca los límites del eje x en el primer intervalo:

  • Cree ax1 llamando a la función axes y especificando t como el objeto principal. De forma predeterminada, los ejes van en el primer mosaico.

  • Represente x e y en ax1.

  • Llame a la función xline para mostrar una línea vertical de puntos en el límite superior del primer intervalo.

  • Establezca los límites del eje x en el primer intervalo, [0 15].

  • Añada una etiqueta de eje para identificar el primer intervalo.

ax1 = axes(t);
plot(ax1,x,y)
xline(ax1,15,':');
ax1.Box = 'off';
xlim(ax1,[0 15])
xlabel(ax1, 'First Interval')

Figure contains 2 axes objects. Axes object 1 is empty. Axes object 2 with xlabel First Interval contains 2 objects of type line, constantline.

Repita el proceso para crear otro objeto de ejes y la gráfica del segundo intervalo. Los ejes aparecen en el primer mosaico de forma predeterminada. Muévalo al segundo mosaico estableciendo la propiedad Layout.Tile de los ejes en 2. Después, vincule los ejes para que coincidan los límites de ambos ejes y.

% Create second plot
ax2 = axes(t);
ax2.Layout.Tile = 2;
plot(ax2,x,y)
xline(ax2,45,':');
ax2.YAxis.Visible = 'off';
ax2.Box = 'off';
xlim(ax2,[45 60])
xlabel(ax2,'Second Interval')

% Link the axes
linkaxes([ax1 ax2], 'y')

Figure contains 3 axes objects. Axes object 1 is empty. Axes object 2 with xlabel First Interval contains 2 objects of type line, constantline. Axes object 3 with xlabel Second Interval contains 2 objects of type line, constantline.

Para añadir un título, pase el diseño de gráfica segmentado a la función title.

title(t,'Attenuated Cosine Function')

Figure contains 3 axes objects. Axes object 1 is empty. Axes object 2 with xlabel First Interval contains 2 objects of type line, constantline. Axes object 3 with xlabel Second Interval contains 2 objects of type line, constantline.

Mostrar dos conjuntos de datos con barras de colores separadas

Desde la versión R2020b

Un objeto de ejes solo admite una barra de colores. Para crear una visualización con varias barras de colores, apile varios objetos de ejes en un diseño de gráfica segmentado. Haga visible solo uno de los ejes, pero muestre una barra de colores junto a cada uno de ellos en un mosaico exterior del diseño.

Cree los vectores de las coordenadas y los datos de tamaño y color para dos gráficas de burbujas.

x = 1:15;
n = 70 * randn(1,15) + 50;
y1 = n + x.^2; 
y2 = n - linspace(1,225,15);
sz1 = rand(1,15);
sz2 = rand(1,15);
c = linspace(1,10,15);

Apile dos objetos de ejes, cada uno con una gráfica de burbujas, en un diseño de gráfica segmentado.

  • Cree un diseño de gráfica segmentado t de 1 por 1.

  • Cree un objeto de ejes ax1 y una gráfica de burbujas con el mapa de colores winter.

  • Cree un objeto de ejes ax2 y una gráfica de burbujas con el mapa de colores autumn. Haga visible este objeto de ejes estableciendo la propiedad Visible en 'off'.

  • Vincule los objetos de ejes para mantenerlos sincronizados. En este caso, puede pasar los elementos secundarios de t a la función linkaxes. También puede pasar un vector de objetos de ejes individuales a la función.

% create first bubble chart with winter colormap
t = tiledlayout(1,1);
ax1 = axes(t); 
bubblechart(ax1,x,y1,sz1,c)
colormap(ax1,'winter')

% create second bubble chart with autumn colormap
ax2 = axes(t);
bubblechart(ax2,x,y2,sz2,c)
colormap(ax2,'autumn')
ax2.Visible = 'off';

% link the limits of axes
linkaxes(t.Children)

Figure contains an axes object. The axes object contains an object of type bubblechart.

Muestre una barra de colores con una etiqueta para cada objeto de ejes en el mosaico este del diseño. El diseño dispone las barras de colores y las mantiene alineadas.

cb1 = colorbar(ax1);
cb1.Layout.Tile = 'east';
cb1.Label.String = 'Time (s)';

cb2 = colorbar(ax2);
cb2.Layout.Tile = 'east';
cb2.Label.String = 'Concentration (M)';

Figure contains an axes object. The axes object contains an object of type bubblechart.

Consulte también

Funciones

Temas relacionados