Main Content

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.

Combinar varias gráficas

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. La función tiledlayout está disponible a partir de la versión R2019b. Si está utilizando una versión anterior, utilice la función subplot en su lugar.

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

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.

Nota: Este código utiliza la función tiledlayout, que está disponible a partir de la versión R2019b. Si está utilizando una versión anterior, utilice la función subplot en su lugar.

x = linspace(0,10,50);
y1 = sin(x);
y2 = rand(50,1);
tiledlayout(2,1) % Requires R2019b or later

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

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

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) % Requires R2019b or later
nexttile
plot(x,y1)
nexttile
scatter(x,y2)

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

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) % Requires R2019b or later

% 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')

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); % Requires R2019b or later
nexttile
plot(x,y1)
nexttile
plot(x,y2)
nexttile
plot(x,y3)
nexttile
plot(x,y4)

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

t.Padding = 'none';
t.TileSpacing = 'none';

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); % Requires R2019b or later
ax1 = nexttile;
plot(ax1,x1,y1)
ax2 = nexttile;
stem(ax2,x2,y2)

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

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';

Consulte también

Funciones

Temas relacionados