Wie kann ich die align-plots/Grafiken in Nebenhandlungen in MATLAB?
Habe ich 3 Objekte (ein Foto und 2 Zeichnungen) in Nebenhandlungen auf eine Abbildung. Es sollte wie folgt Aussehen:
Aber, wie man merken kann, sollte das Foto nicht quadratisch sein, sondern Rechteck. Ich habe versucht, es auf diese Weise (finden Sie hier Matlab: Wie richten Sie die Achsen von Nebenhandlungen, wenn einer von Ihnen enthält eine Farbskala?):
main=subplot(4,4,[5,6,7,9,10,11,13,14,15]) %photo
imagesc(im);
axis('image')
pion=subplot(4,4,[8,12,16]); %right plot (rotated)
view(90, 90)
plot(ypion,Ppion,'.k');
poz=subplot(4,4,1:3); %upper plot
plot(xpoz,Ppoz,'.k');
pos1=get(poz,'Position')
pos2=get(main,'Position')
pos3=get(pion,'Position')
pos1(3) = pos2(3); %width for the upper plot
set(poz,'Position',pos1)
pos3(4) = pos2(4); %height for the right plot
set(pion,'Position',pos3)
Alles was ich bekomme ist das hier:
Wie kann ich die Kraft der Obere plot zu haben, die Breite als das Foto selbst ist (nicht wie auf dem Foto Nebenhandlung)? Einstellung die gleiche Breite von Nebenhandlungen, die nicht funktioniert, wie das Foto füllt nicht die Nebenhandlung Bereich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Befehl
axis image
passen Sie das Bild an Achse-Verhältnis. Also, im Prinzip, wenn Sie passen Sie die plot-Verhältnisse der beiden Grundstücke zu den gleichen Schnitt, es wird tun, was Sie wollen.Es gibt einen Nachteil, das Bild ist von Natur aus 3 mal breiter oder höher als die Grundstücke, aufgrund der Tatsache, dass Sie noch Planten, es in 3x3 Nebenhandlungen, vs, 1x3 für die Ober-und 3x1 für die richtigen Handlungen. So, Sie werden aufteilen, entweder die
x
odery
Verhältnisse der Grundstücke von 3.Einige Beispiel-code:
Diese ergibt Folgendes Ergebnis:
Nur um zu testen, ändern
photo = imagesc([X,X]);
zuphoto = imagesc([X;X]);
gibt diese:Hinweis, dass ich nicht teilen Sie die ratios von 3 genau; es kam nur OK aus, wenn ich verwendet, Faktoren näher zu 4. Ich weiß nicht, warum das so ist; AFAIK einen Faktor 3 sollte den trick tun...
Naja, zumindest haben Sie etwas, mit zu arbeiten jetzt 🙂
Wahrscheinlich eine bessere Lösung für die akzeptierte Antwort. Diese Lösung ist eine Adaption des original geschrieben hier.
Vorschau:
Ein bisschen Erklärung
Einige der Erklärung wurde veröffentlicht in der original-Beitrag, ich werde mich nicht, Sie hier zu wiederholen.
Die Idee ist die Berechnung der korrekten Seitenverhältnis für die Figuren benötigt, um in der Größe verändert werden.
Wir haben die folgenden Gleichungen:
Lassen
Wir haben
Für diesen speziellen Fall empfehle ich die Verwendung von low-level -
axes
direkt anstelle von high-level -subplot
.Verwenden Sie die
'OuterPosition'
Eigenschaften der dreiaxes
Objekte, die Sie erstellen, um Sie in die richtige Ort mit der entsprechenden Größe.Wenn Sie möchten, dass die Bild ausgerichtet werden, um die Achsen(verzerrtes Bild):
ändern
axis('image')
zuaxis('tight')
.Wenn Sie möchten, dass das Bild-Seitenverhältnis zu bleiben, und richten Sie die Achsen der Grafik:
Gut, das ist quick and dirty, aber nach der Anwendung
axis('tight')
, die Größe der Abbildung auf der entsprechenden Skala...