2009-11-16 22 views
15

¿Cómo se toma una parcela y se coloca en la esquina (o en cualquier otro lugar) de otra parcela en MATLAB?Plotear superposición MATLAB

Tengo datos logarítmicos que tienen un gran espacio en blanco en el lado superior derecho de la gráfica. En el espacio en blanco me gustaría superponer una trama más pequeña que contiene una versión ampliada de la trama de registro en ese espacio en blanco (algo así como una vista ampliada).

Antes de decirme que no se puede hacer, me gustaría mencionar que lo he visto en acción. Si falta mi descripción, házmelo saber e intentaré describértelo mejor.

Respuesta

19

Un ejemplo:

x = 1:20; 
y = randn(size(x)); 

plot(x, y,'LineWidth',2) 
xlabel('x'), ylabel('y'), title('Plot Title') 

h = axes('Position', [.15 .65 .2 .2], 'Layer','top'); 
bar(x,y), title('Bar Title') 
axis(h, 'off', 'tight') 

screenshot

+0

http://stackoverflow.com/questions/22485877/matlab-embed-zoom-in-subgraph-into-the-graph –

8

Puede usar axes propiedades 'position' y 'units' y hacerlas excesivamente. Preste atención para crear ejes pequeños después del grande o use la función uistack() para que lo grande no oculte el pequeño.

Lo que no puede hacer es hacer un hacha hija de otra (como Mathworks do with legend). Pero no lo necesitas de todos modos.

Para la segunda parcela tiene que usar axes y line en lugar de plot y hold on.

Unidades como 'normalized' (que es la predeterminada) permiten una apariencia de tamaño uniforme cuando se cambia el tamaño de la figura principal (por ejemplo, maximizada manualmente).