Main Content

Combinar varias gráficas

Desde la versión R2019b. Reemplaza Combinar varias gráficas (R2019a).

En este ejemplo, se muestra cómo combinar gráficas en los mismos ejes utilizando la función hold y cómo crear varios ejes en una figura con la función tiledlayout.

Combinar gráficas en los mismos ejes

De forma predeterminada, las nuevas gráficas eliminan las gráficas existentes y restablecen las propiedades, como por ejemplo el título. Sin embargo, puede utilizar el comando hold on para combinar varias gráficas en los mismos ejes. Por ejemplo, represente dos líneas y un diagrama de dispersión. Después restablezca el estado de permanencia en desactivado.

x = linspace(0,10,50);
y1 = sin(x);
plot(x,y1)
title('Combine Plots')

hold on

y2 = sin(x/2);
plot(x,y2)

y3 = 2*sin(x);
scatter(x,y3) 

hold off

Figure contains an axes object. The axes object with title Combine Plots contains 3 objects of type line, scatter.

Cuando el estado de permanencia está activado, las nuevas gráficas no eliminan las gráficas existentes o restablecen las propiedades de los ejes, como las etiquetas del eje o de título. Las gráficas vuelven a utilizar los colores y los estilos de línea basados en las propiedades ColorOrder y LineStyleOrder de los ejes. Los límites de los ejes y los valores de marca pueden ajustarse para acomodar los nuevos datos.

Mostrar varios ejes en una figura

Puede mostrar varios ejes en una sola figura utilizando la función tiledlayout. Esta función crea un diseño de gráfica segmentado que contiene una cuadrícula invisible de mosaicos en toda la figura. Cada mosaico contiene un eje para mostrar una grafica. Después de crear un diseño, llame a la función nexttile para colocar un objeto de ejes en el diseño. Después llame a una función de representación que representar en los ejes. Por ejemplo, cree dos gráficas en un diseño 2 por 1. Agregue un título a cada gráfica.

x = linspace(0,10,50);
y1 = sin(x);
y2 = rand(50,1);
tiledlayout(2,1)

% Top plot
nexttile
plot(x,y1)
title('Plot 1')

% Bottom plot
nexttile
scatter(x,y2)
title('Plot 2')

Figure contains 2 axes objects. Axes object 1 with title Plot 1 contains an object of type line. Axes object 2 with title Plot 2 contains an object of type scatter.

Crear una gráfica que abarque varias filas y columnas

Para crear una gráfica que abarque varias filas o columnas, especifique el argumento span cuando llame nexttile. Por ejemplo, cree un diseño de 2 por 2. Represente en los dos primeros mosaicos. Después cree una gráfica que abarque una fila y dos columnas.

x = linspace(0,10,50);
y1 = sin(x);
y2 = rand(50,1);

% Top two plots
tiledlayout(2,2)
nexttile
plot(x,y1)
nexttile
scatter(x,y2)

% Plot that spans
nexttile([1 2])
y2 = rand(50,1);
plot(x,y2)

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

Modificar el aspecto de los ejes

Modifique la apariencia de los ejes estableciendo las propiedades en cada objeto de los ejes. Puede conseguir el objeto de ejes llamando a la función nexttile con un argumento de salida. También puede especificar el objeto de ejes como el primer argumento de entrada a la función gráfica para garantizar que la función se dirige a los ejes correctos.

Por ejemplo, cree dos gráficas y asigne los objetos de ejes a las variables ax1 y ax2. Cambie el tamaño de la fuente de los ejes y el color del eje x por la primera gráfica. Agregue las líneas de cuadrículas a la segunda gráfica.

x = linspace(0,10,50);
y1 = sin(x);
y2 = rand(50,1);
tiledlayout(2,1)

% Top plot
ax1 = nexttile;
plot(ax1,x,y1)
title(ax1,'Plot 1')
ax1.FontSize = 14;
ax1.XColor = 'red';

% Bottom plot
ax2 = nexttile;
scatter(ax2,x,y2)
title(ax2,'Plot 2')
grid(ax2,'on')

Figure contains 2 axes objects. Axes object 1 with title Plot 1 contains an object of type line. Axes object 2 with title Plot 2 contains an object of type scatter.

Controlar el espacio alrededor de los mosaicos

Puede controlar el espacio alrededor de los mosaicos en un diseño especificando las propiedades Padding y TileSpacing. Por ejemplo, muestre cuatro gráficas en un diseño de 2 por 2.

x = linspace(0,30);
y1 = sin(x);
y2 = sin(x/2);
y3 = sin(x/3);
y4 = sin(x/4);

% Create plots
t = tiledlayout(2,2);
nexttile
plot(x,y1)
nexttile
plot(x,y2)
nexttile
plot(x,y3)
nexttile
plot(x,y4)

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

Reduzca el espacio alrededor del perímetro del diseño y alrededor de cada mosaico estableciendo las propiedades Padding y TileSpacing en 'compact'.

t.Padding = 'compact';
t.TileSpacing = 'compact';

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

Mostrar etiquetas de eje y título compartidas

Puede mostrar un título y unas etiquetas de eje compartidas en un diseño. Cree un diseño de 2 por 1 t. Después muestre una gráfica de líneas y una gráfica de puntos. Sincronice los límites del eje x llamando a la función linkaxes.

x1 = linspace(0,20,100);
y1 = sin(x1);
x2 = 3:17;
y2 = rand(1,15);

% Create plots.
t = tiledlayout(2,1);
ax1 = nexttile;
plot(ax1,x1,y1)
ax2 = nexttile;
stem(ax2,x2,y2)

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

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

Agregue un título compartido y etiquetas de eje compartidas pasando t a las funciones title, xlabel y ylabel. Acerque las gráficas eliminando las etiquetas de marcas del eje x de la gráfica superior y al establecer la propiedad TileSpacing de t en 'compact'.

% Add shared title and axis labels
title(t,'My Title')
xlabel(t,'x-values')
ylabel(t,'y-values')

% Move plots closer together
xticklabels(ax1,{})
t.TileSpacing = 'compact';

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

Consulte también

Funciones

Temas relacionados