How can I disable font smoothing within a legend?
조회 수: 7 (최근 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!