Plot Overlay MATLAB
Frage
Wie nehmen Sie ein Grundstück und legen Sie sich in der Ecke (oder überall für diese Angelegenheit) von einem anderen Grundstück in MATLAB?
Ich habe logarithmische Daten, die einen großen weißen Raum in der oberen rechten Seite des Grundstücks hat. Im weißen Raum würde Ich mag ein kleineres Grundstück zu überlagern eine vergrößerte Version des Log-Plot in dem weißen Raum (Art wie eine vergrößerte Ansicht) enthält.
Bevor Sie mir sagen, es nicht getan werden kann, würde Ich mag zu erwähnen, dass ich sie in Aktion gesehen habe. Wenn meine Beschreibung fehlt, lassen Sie mich wissen, und ich werde versuchen, es besser zu Ihnen zu beschreiben.
Lösung
Ein Beispiel:
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')
Andere Tipps
Sie können axes
Eigenschaften 'position'
und 'units'
verwenden und sie übermäßig. Achten Sie kleine Achsen nach großer einem oder Verwendung uistack()
Funktion zu schaffen, so dass groß klein man nicht verbergen.
Was man nicht kann, ist ein Achsen Kind eines anderen zu machen (wie Mathworks tun mit legend
). Aber Sie brauchen nicht es trotzdem.
Für das zweite Grundstück hat man axes
und line
statt plot
und hold on
zu verwenden.
Einheiten als 'normalized'
(der Standard) ermöglichen einheitliche Größe veränderbar aussehen, wenn übergeordnetes Bild der Größe verändert wird (zum Beispiel manuell maximiert).