How can I disable font smoothing within a legend?
3 次查看(过去 30 天)
显示 更早的评论
I want to globally disable font smoothing for all text entries within figures, since smoothed text looks very poor on my display.
I tried:
set(groot, 'DefaultTextFontSmoothing', 'off');
set(groot, 'DefaultAxesFontSmoothing', 'off');
which seems to work for xlabel(), title(), etc. but not for the text within legends.
I am using Matlab R2015a.
0 个评论
采纳的回答
Brian C Coe
2019-5-30
编辑:Brian C Coe
2019-6-18
function [leg,labelhandles,outH,outM] = legend2(varargin)
% function [leg,labelhandles,outH,outM] = legend2(varargin)
% quite possibly the stupidest code i ever had to hack-up to get around a matlab stupidity.
% call 'legend2' instead of 'legend' to remove the noisy font smoothing.
% still can't figure out how to remove the graphicssmoothing, however.
% 2019may31 ~bcoe
if isempty(varargin)
help(mfilename)
return
end
[leg,labelhandles,outH,outM] = legend(varargin{:});
for ii=1:length(leg.ItemText)
leg.ItemText(ii).FontSmoothing='off';
% leg.ItemTokens(ii).graphicssmoothing='off'; %still trying to kill linesmoothing
end
call 'legend2' instead of 'legend'... (-sigh-)
0 个评论
更多回答(1 个)
Cindy Solomon
2015-4-22
Hi HoBe,
In order to turn off the font smoothing of a legend, you can set the FontSmoothing property of a text object that is a child of the legend. For example:
plot(1:10)
[h,objs] = legend('one')
objs(1).FontSmoothing='off'
Since the legend is no longer a child of the axis, changing the FontSmoothing property of the axis does not have any impact on the legend. Hope this helps!
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!