Ich habe Schwierigkeiten, die Schriftgröße in der Legende eines Diagramms in Matlab R2016a zu ändern. Wenn ich die bevorzugte Syntax l = legende() verwende, funktioniert es korrekt. Ich benötige jedoch Zugriff auf die Symbole, um die Facea-Eigenschaft zu ändern. Daher verwende ich die Syntax [l, icons, plots, txt] = legend(), die laut Matlab "nicht empfohlen wird und eine Legende erstellt, die nicht alle Grafikfunktionen unterstützt." Wenn Sie diese Syntax verwenden, wird die Schriftgröße nicht korrekt aktualisiert. Gibt es trotzdem die richtige Schriftgröße und transparente Legendensymbole?Matlab legende font size wird nicht aktualisiert, wenn [l, icons, plots, txt] = legende() verwendet wird
%% Some data to plot
x=linspace(1,10);
y=linspace(1,20);
[xx,yy]=meshgrid(x,y);
zz1=2*xx+3*xx.*yy+yy.^2;
%% Correct font, but icons not transparent
figure(1)
h=surf(x,y,zz1,'FaceColor','b','EdgeColor','none');
alpha(h,0.4)
l=legend('plot1');
l.FontSize=24;
l.FontName='Wide Latin';
%% Icons transparent, but incorrect font
figure(2)
h=surf(x,y,zz1,'FaceColor','b','EdgeColor','none');
alpha(h,0.4)
[l,icons,plot,text]=legend('plot1');
l.FontSize=24;
l.FontName='Wide Latin';
set(findobj(icons,'type','patch'),'facea',0.4)
Symbol enthält auch die Textobjekte, deren Schriftgröße Sie ändern müssen. Ich weiß nicht, warum es nicht korrekt mit der Schriftgröße des Legendenobjekts verknüpft ist, scheint wie ein potenzieller Fehler. – excaza