Ich benutze 64-Bit-Matlab R2010a unter Windows 7 (dies könnte relevant sein, wenn es sich um einen obskuren Darstellungsfehler handelt)
Dies ist anscheinend ein seltsamer Fehler, der auftritt, wenn der Text-Interpreter Latex ist
set(0, 'DefaultTextInterpreter', 'Latex');
dieser Code wird eine blaue Box mit einem schwarzen Rand und einer Legende außerhalb der Achsen erzeugen
cla reset;
patch ([0.5 0.5 0.75 0.75 0.5], [0.5 0.75 0.75 0.5 0.5], 'b', 'FaceAlpha',1);
xlim([0 1]);
ylim([0 1])
legend ('blah', 'Position', 'bestOutside')
Wenn ich den Code ändere, so dass das Patch einen nicht-opaken Alpha-Wert hat,
cla reset;
patch ([0.5 0.5 0.75 0.75 0.5], [0.5 0.75 0.75 0.5 0.5], 'b', 'FaceAlpha',0.5);
xlim([0 1]);
ylim([0 1]);
legend ('blah', 'Position', 'bestOutside')
bekomme ich eine leere schwarze Box anstelle einer gefüllten Box und Achsen, die richtig dimensioniert sind, um eine Legende außerhalb zu platzieren, aber keine Legende.
Das Patch verschwindet auch, wenn ich den gesamten Code bis zur Legende ausführe und dann auf "Plot bearbeiten" im Figure-Menü klicke. Das Patch erscheint nicht wieder, nachdem ich "Plot bearbeiten" abgewählt habe. Die Figure- und Achseneigenschaften (unter Verwendung von get(gcf) und get(gca) entsprechend) sind vor und nach dem Klick auf "Plot bearbeiten" identisch
Das Ändern der Größe des Figure-Fensters lässt das Patch nicht verschwinden. Das Ändern der Achsengröße von der Befehlszeile aus:
p = get(gca, 'Position');p(3) = p(3)/2; set (gca, 'Position', p)
verursacht nicht, dass das Patch verschwindet.
Ich habe versucht, opengl auf Hardware- und Softwaremodus zu setzen (unter Verwendung von opengl hardware, opengl software) und keinen Unterschied festgestellt.