Domanda

Come si fa a prendere una trama e metterlo in un angolo (o dovunque per quella materia) di un altro complotto in MATLAB?

Ho dati logaritmica che ha un grande spazio bianco nella parte in alto a destra del grafico. Nello spazio bianco vorrei sovrapporre una trama più piccola contenente un ingrandito nella versione del grafico log in quello spazio bianco (un po 'come una vista ingrandita).

Prima mi dici che non può essere fatto, vorrei ricordare che l'ho visto in azione. Se la mia descrizione è carente, fammelo sapere e cercherò di descrivere meglio a voi.

È stato utile?

Soluzione

Un esempio:

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

Altri suggerimenti

È possibile utilizzare le proprietà axes 'position' e 'units' e renderli eccessivamente. Prestare attenzione a creare piccole assi dopo la grande o utilizzare la funzione uistack() in modo che i grandi non nasconde piccolo.

Quello che non si può fare è quello di fare un figlio assi di un altro (come Mathworks che fare con legend). Ma non è necessario in ogni caso.

Per il secondo lotto è necessario utilizzare axes e line invece di plot e hold on.

Unità come 'normalized' (che è di default) permette aspetto uniforme quando ridimensionabile figura genitore viene ridimensionato (ad esempio manualmente ingrandita).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top