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.

subplot

Crear ejes en posiciones de mosaico

Sintaxis

subplot(m,n,p)
subplot(m,n,p,'replace')
subplot(m,n,p,'align')
subplot(m,n,p,ax)
subplot('Position',pos)
subplot(___,Name,Value)
ax = subplot(___)
subplot(ax)

Descripción

ejemplo

subplot(m,n,p) divide la figura actual en una cuadrícula de m por n y crea ejes en la posición especificada por p. MATLAB® numera las posiciones de subgráfico por fila. El primer subgráfico es la primera columna de la primera fila, el segundo subgráfico es la segunda columna de la primera fila, y así sucesivamente. Si existen ejes en la posición especificada, este comando convierte los ejes en los ejes actuales.

ejemplo

subplot(m,n,p,'replace') elimina los ejes existentes en la posición p y crea nuevos ejes.

subplot(m,n,p,'align') crea nuevos ejes para que los cuadros de gráfico estén alineados. Esta opción es el comportamiento predeterminado.

ejemplo

subplot(m,n,p,ax) convierte los ejes existentes, ax, en un subgráfico en la misma figura.

ejemplo

subplot('Position',pos) crea ejes en la posición personalizada especificada por pos. Utilice esta opción para colocar un subgráfico que no se alinee con las posiciones de cuadrícula. Especifique pos como un vector de cuatro elementos con la forma [left bottom width height]. Si los nuevos ejes se solapan con los ejes existentes, los nuevos ejes sustituirán a los ejes existentes.

subplot(___,Name,Value) modifica las propiedades de los ejes mediante uno o varios argumentos de par nombre-valor. Para obtener una lista de propiedades, consulte Axes Properties. Defina las propiedades de los ejes después de todos los demás argumentos de entrada.

ejemplo

ax = subplot(___) devuelve el objeto Axes creado. Utilice ax para realizar modificaciones futuras en los ejes. Para obtener una lista de propiedades, consulte Axes Properties.

ejemplo

subplot(ax) convierte los ejes especificados por ax en los ejes actuales de la figura principal. Esta opción no convierte la figura principal en la figura actual si no lo es ya.

Ejemplos

contraer todo

Cree una figura con dos subgráficos apilados. Trace una onda sinusoidal en cada uno.

subplot(2,1,1);
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)

subplot(2,1,2); 
y2 = sin(5*x);
plot(x,y2)

Cree una figura dividida en cuatro subgráficos. Trace una onda sinusoidal en cada uno y ponga título a cada subgráfico.

subplot(2,2,1)
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
title('Subplot 1: sin(x)')

subplot(2,2,2)
y2 = sin(2*x);
plot(x,y2)
title('Subplot 2: sin(2x)')

subplot(2,2,3)
y3 = sin(4*x);
plot(x,y3)
title('Subplot 3: sin(4x)')

subplot(2,2,4)
y4 = sin(8*x);
plot(x,y4)
title('Subplot 4: sin(8x)')

Cree una figura que contenga tres subgráficos. Cree dos subgráficos en la mitad superior de la figura y un tercer subgráfico que abarque la mitad inferior de la figura. Añada títulos a cada subgráfico.

subplot(2,2,1);
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);
title('Subplot 1: Cosine')

subplot(2,2,2);
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');
title('Subplot 2: Polynomial')

subplot(2,2,[3,4]);
plot(x,y_cos,'b',x,y_poly,'g');
title('Subplot 3 and 4: Both')

Cree una figura con cuatro gráficos de tallos de datos aleatorios. A continuación, reemplace el segundo subgráfico por ejes vacíos.

for k = 1:4
    data = rand(1,10);
    subplot(2,2,k)
    stem(data)
end

subplot(2,2,2,'replace')

Cree una figura con dos subgráficos que no estén alineados con posiciones de cuadrícula. Especifique una posición personalizada para cada subgráfico.

pos1 = [0.1 0.3 0.3 0.3];
subplot('Position',pos1)
y = magic(4);
plot(y)
title('First Subplot')

pos2 = [0.5 0.15 0.4 0.7];
subplot('Position',pos2)
bar(y)
title('Second Subplot')

Cree una figura con dos ejes polares. Cree un gráfico de líneas polares en el subgráfico superior y un gráfico de dispersión polar en el subgráfico inferior.

figure
ax1 = subplot(2,1,1,polaraxes);
theta = linspace(0,2*pi,50);
rho = sin(theta).*cos(theta);
polarplot(ax1,theta,rho)

ax2 = subplot(2,1,2,polaraxes);
polarscatter(ax2,theta,rho)

Cree una figura con dos subgráficos. Asigne los objetos Axes a las variables ax1 y ax2. Especifique los objetos Axes como entradas para las funciones de trazado a fin de asegurarse de que las funciones se tracen en un subgráfico específico.

ax1 = subplot(2,1,1);
Z = peaks;
plot(ax1,Z(1:20,:))

ax2 = subplot(2,1,2);  
plot(ax2,Z)

Modifique los ejes estableciendo las propiedades de los objetos Axes. Cambie el tamaño de fuente del subgráfico superior y el ancho de línea del subgráfico inferior. Algunas funciones de trazado establecen las propiedades de los ejes. Ejecute las funciones de trazado antes de especificar las propiedades de los ejes para evitar la anulación de la configuración de las propiedades de ejes existentes.

Nota: A partir de la versión R2014b, se puede utilizar la notación de puntos para establecer propiedades. Si está utilizando una versión anterior, utilice la función set en su lugar.

ax1.FontSize = 15;
ax2.LineWidth = 2;

Cree una figura con varios subgráficos. Almacene los objetos Axes en el vector ax. A continuación, convierta el segundo subgráfico en los ejes actuales. Cree un gráfico de líneas y cambie los límites de eje para el segundo subgráfico. De forma predeterminada, las funciones gráficas apuntan a los ejes actuales.

for k = 1:4
    ax(k) = subplot(2,2,k);
end

subplot(ax(2))
x = linspace(1,50);
y = sin(x);
plot(x,y,'Color',[0.1, 0.5, 0.1])
title('Second Subplot')
axis([0 50 -1 1])

Cree un gráfico de líneas. A continuación, convierta los ejes para que sean el subgráfico inferior de la figura. La función de subgráfico utiliza la figura en la que existían los ejes originales.

x = linspace(1,10);
y = sin(x);
plot(x,y)
title('Sine Plot')

ax = gca;
subplot(2,1,2,ax)

Combine los ejes existentes en figuras separadas en una sola figura con subgráficos.

Cree dos gráficos en dos figuras diferentes. Asigne los objetos Axes a las variables ax1 y ax2. Asigne el objeto Legend a la variable lgd.

figure
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
title('Line Plot 1')

ax1 = gca;

figure
y2 = 2*sin(x);
plot(x,y2)
title('Line Plot 2')
lgd = legend('2*Sin(x)');

ax2 = gca;

Cree copias de los dos objetos Axes mediante copyobj. Especifique los elementos principales de los ejes copiados como una nueva figura. Como las leyendas y las barras de colores no se copian con los ejes asociados, copie la leyenda con los ejes.

fnew = figure;
ax1_copy = copyobj(ax1,fnew);
subplot(2,1,1,ax1_copy)

copies = copyobj([ax2,lgd],fnew);
ax2_copy = copies(1);
subplot(2,1,2,ax2_copy)

Argumentos de entrada

contraer todo

Número de filas de la cuadrícula, especificado como un entero positivo.

Tipos de datos: single | double

Número de columnas de la cuadrícula, especificado como un entero positivo.

Tipos de datos: single | double

Posición de la cuadrícula para los nuevos ejes, especificada como escalar o vector de enteros positivos.

  • Si p es un entero positivo escalar, subplot crea un subgráfico en la posición de cuadrícula p.

  • Si p es un vector de enteros positivos, subplot crea un subgráfico que abarca las posiciones de cuadrícula enumeradas en p.

Ejemplo: subplot(2,3,1) crea un subgráfico en la posición 1.

Ejemplo: subplot(2,3,[2,5]) crea un subgráfico que abarca las posiciones 2 y 5.

Ejemplo: subplot(2,3,[2,6]) crea un subgráfico que abarca las posiciones 2, 3, 5 y 6.

Tipos de datos: single | double

Posición personalizada para los nuevos ejes, especificada como un vector de cuatro elementos con la forma [left bottom width height].

  • Los elementos left y bottom especifican la posición de la esquina inferior izquierda del subgráfico en relación con la esquina inferior izquierda de la figura.

  • Los elementos width y height especifican las dimensiones del subgráfico.

Especifique los valores entre 0 y 1 que se normalizan con respecto al interior de la figura.

Nota

Al utilizar un script para crear subgráficos, MATLAB no finaliza el valor de la propiedad Position hasta que se emite un comando drawnow o MATLAB devuelve como respuesta la espera de un comando de usuario. El valor de la propiedad Position para un subgráfico está sujeto a cambios hasta que el script actualiza el gráfico o finaliza.

Ejemplo: subplot('Position',[0.1 0.1 0.45 0.45])

Tipos de datos: single | double

Ejes existentes para convertir en actuales o convertir en un subgráfico, especificados como un objeto Axes, un objeto PolarAxes o un objeto de gráficos con una propiedad ActivePositionProperty, como un objeto HeatmapChart.

Para crear ejes polares vacíos en una posición de subgráfico, especifique ax como la función polaraxes, por ejemplo, subplot(2,1,2,polaraxes).

Argumentos de par nombre-valor

Ejemplo: subplot(m,n,p,'XGrid','on')

Para obtener una lista de las propiedades que puede establecer, consulte Axes Properties. Algunas funciones de trazado anulan la configuración de propiedades. Considere establecer las propiedades de los ejes después del trazado.

Sugerencias

  • Para borrar el contenido de la figura, utilice clf. Por ejemplo, puede borrar el diseño del subgráfico existente de la figura antes de crear un nuevo diseño de subgráfico.

  • Para superponer los ejes, utilice en su lugar el comando axes. La función subplot elimina los ejes existentes que se solapan con los nuevos ejes. Por ejemplo, subplot('Position',[.35 .35 .3 .3]) elimina todos los ejes subyacentes, pero axes('Position',[.35 .35 .3 .3]) coloca nuevos ejes en el centro de la figura sin eliminar los ejes subyacentes.

  • subplot(111) es una excepción y no tiene el mismo comportamiento que subplot(1,1,1). Por razones de compatibilidad inversa, subplot(111) es un caso especial de subgráfico que no crea de forma inmediata los ejes, sino que configura la figura para que el siguiente comando de gráficos ejecute clf reset. El siguiente comando de gráficos borra todos los elementos secundarios de la figura y crea nuevos ejes en la posición predeterminada. subplot(111) no devuelve un objeto Axes y se produce un error si el código especifica un argumento de devolución.

Consulte también

Funciones

Propiedades

Introducido antes de R2006a