Matlab title, xlabel, legend 中文变成方框的解决方案

1、问题描述

之前一直使用的都是2015b版本,用了三年也没遇到过这个问题。但是最近的某一天,这个著名的问题就出现了。当时打算下载2020a版,就没有太过关注,搜索了一下解决办法,基本都是针对编辑器的默认字体修改,试过了但无效。绘图axes的显示字体好像和编辑器采用的好像不是相同的字体管理方式,但是axes的字体管理界面一直都没有找到。

换了2020a版本之后,仍然呈现方框。查了一圈博客论坛后,问题好像是:不知道从哪个版本开始,matlab的座标axes默认字体变成了Helvetica,这种字体不支持中文,因此总是会在画图时显示为乱码或方框,我遇到的是方框。

Why is “Helvetica” the default axes font type in MATLAB when this font does not exist on my Windows XP machine?
在这里插入图片描述
matlab技术支持团队的回答只是提供了一种解决方案,但是对于为什么Helvetica是默认字体没有给予解释。

Why does MATLAB use the default Helvetica font when certain True Type fonts are chosen for a text object in my MATLAB figure?

2、问题解决

C = listfonts 	% 可以查看系统中存在的字体
edit listfonts 	% 可以打开系统字体列表文件
Ans = get(0,'defaultAxesFontName');  % 运行结果可看到是Helvetica

总结来看,下面的方法可以解燃眉之急,但也不是一劳永逸,每次打开matlab还是要重复一遍。比较好的方法是在matlab的startup.m文件中加入下面的代码。

set(0,'defaultAxesFontName', 'Monospaced');
set(0,'defaultAxesFontSize', 10);



参考链接:
如何解决 Matlab 画图时中文显示乱码的问题?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章