2013-07-24 12 views

Antwort

3

Vielleicht versuchen legendflex aus dem Dateiaustausch, es sieht aus wie es tun kann, was Sie wollen.

4

wenn Sie nur Standard-Matlab verwenden möchten, müssen Sie den Griff des subplot und dann müssen Sie ihre Position. Dann legen Sie die Position der Legende auf die Position des Teilplots fest. Mit Bezug auf die Dokumentation:

Hinweis Sie können, indem man das 4-Elemente-Positionsvektor der Legende Funktion unter Verwendung der ‚Location‘ Option, um die Legende Lage. Um die Position einer vorhandenen Legende zu definieren, verwenden Sie die Funktion set, um den 4-Element-Positionsvektor der Eigenschaft 'Position' zuzuweisen. Sie können nicht die Location-Option mit der eingestellten Funktion

verwenden, zB:

subplot(2,3,1), plot(1:10,2:11) 
myLegend=legend('text1') 
set(myLegend,'Units', 'pixels') 
myOldLegendPos=get(myLegend,'Position') 
hold on 
h=subplot(2,3,6) 
set(h,'Units', 'pixels') 
myPosition=get(h,'Position') 
set(myLegend,'Position',[myPosition(1) myPosition(2) myOldLegendPos(3) myOldLegendPos(4)]) 
+2

Diese Methode ist für mich nicht funktioniert hat. Wenn ich den obigen Code in R2012b kopiere/füge, erscheint die Legende nirgendwo in der Abbildung. Der Grund dafür ist, dass das zweite leere Nebenplot die Legende "überdeckt". Man muss am Ende die Zeile 'set (h, 'Visible', 'off')' hinzufügen, damit die Legende sichtbar wird. –

+0

Oder verwenden Sie "Legende", wenn "Ort" auf einen Vektor gesetzt ist. [Position_Right_in_pct, Position_Top_in_pct, Horizontal_Stretch Vertical_Stretch] ' Siehe http://stackoverflow.com/a/35696869/3494126 – Ufos

Verwandte Themen