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)
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)
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
de1
por1
.Cree un objeto de ejes
ax1
llamando a la funciónaxes
y especificandot
como el objeto principal.Represente
x1
ey1
como una línea roja y especifiqueax1
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';
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ónaxes
y especificandot
como el objeto principal.Represente
x2
ey2
como una línea negra y especifiqueax2
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';
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
de1
por2
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ónaxes
y especificandot
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
debgAx
en[1 2]
.
figure t = tiledlayout(1,2,'TileSpacing','compact'); bgAx = axes(t,'XTick',[],'YTick',[],'Box','off'); bgAx.Layout.TileSpan = [1 2];
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ónaxes
y especificandot
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')
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')
Para añadir un título, pase el diseño de gráfica segmentado a la función title
.
title(t,'Attenuated Cosine Function')
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
de1
por1
.Cree un objeto de ejes
ax1
y una gráfica de burbujas con el mapa de coloreswinter
.Cree un objeto de ejes
ax2
y una gráfica de burbujas con el mapa de coloresautumn
. Haga visible este objeto de ejes estableciendo la propiedadVisible
en'off'
.Vincule los objetos de ejes para mantenerlos sincronizados. En este caso, puede pasar los elementos secundarios de
t
a la funciónlinkaxes
. 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)
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)';
Consulte también
Funciones
tiledlayout
|yyaxis
|axes