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
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')
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)
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')
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)
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';
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');
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
tiledlayout
|nexttile
|title
|hold