Мне сложно изменить размер шрифта, используемый в легенде сюжета в Matlab R2016a. Если я использую предпочтительный синтаксис l = legend(), он работает правильно. Однако мне нужно получить доступ к дескриптору значков, чтобы изменить свойство facea. Поэтому я использую синтаксис [l, icons, plot, txt] = legend(), который согласно Matlab «не рекомендуется и создает легенду, которая не поддерживает все графические функции». При использовании этого синтаксиса размер шрифта не обновляется корректно. Есть ли способ получить правильный размер шрифта и прозрачные значки легенды?Размер шрифта легенды Matlab не обновляется при использовании [l, icons, plot, txt] = legend()
%% 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)
'icons' также содержит текстовый объект (ы), размер шрифта которого необходимо изменить. Я не знаю, почему это неправильно связано с размером шрифта объекта легенды, похоже на потенциальную ошибку. – excaza