中文论文要求图片文字为宋体,如何在Python生成的图片中显示宋体而不乱码/显示方块
中文论文要求图片文字为宋体,如何在Python生成的图片中显示宋体而不乱码/显示方块
系统Win11;Python:Anaconda3(Spyder)
具体步骤如下:
- 下载宋体字体文件,文件为SimSun.tiff(一定要tiff后缀的文件才行),下载链接转载自: link.(如有侵权,可联系本人,进行删除或修改)
- 先将SimSun.tiff文件下载到桌面,然后接下来进行两步操作,(1)找到Python绘图(matplotlib)配置文件进行修改和(2)将SimSun.tiff文件复制到绘图(matplotlib)字体储存的位置。
(1)找到Python绘图(matplotlib)配置文件进行修改:
第一步: 如何快速找到matplotlib配置文件:按图示将下面文本复制到控制台:
import matplotlib
print(matplotlib.matplotlib_fname())
第二步:
第三步: 上图为复制结果,然后按键盘回车键(ENTER),得到下图的matplotlib配置文件为matplotlibrc,作者的输出结果为:C:\F\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc
(根据自己电脑进行查找)
第四步: 在电脑中找到matplotlib配置文件matplotlibrc,路径在:C:\F\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc
第五步: 通过记事本打开matplotlibrc,修改三项配置
第六步: 文字比较多,可以通过编辑中的查找找到需要修改的内容
第七步: 去除font.family : sans-serif 前面的#
第八步:
第九步: 去除font.sans-serif : 前面的#,并在font.sans-serif : 后添加宋体字体文本"SimSun"
第十步:
第十一步: 去除axes.unicode_minus前面的#,并将"True"改成"False",此处的作用就是解决图中负号’-'显示为方块的问题
第十二步:
(2)将SimSun.tiff文件复制到绘图(matplotlib)字体储存的位置
第十三步: 首先根据(1)里面快速找到matplotlib配置文件的提示(C:\F\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc),找到matplotlib字体储存的位置,如:C:\F\Anaconda3\lib\site-packages\matplotlib\mpl-data,将SimSun.tiff复制到fonts文件中ttf文件里面

第十四步:
第十五步:
- 删除Python中的绘图(matplotlib )缓存,才能够正常显示不乱码的宋体。因此要求删除~/.cache/matplotlib 的缓冲目录。这里要求是要找到matplotlib缓存路径(基本上都在"C盘\用户\用户命名.matplotlib"路径下,比如作者自己的是:\C:\Users\13640.matplotlib)
第1步:
第2步:
第3步:
第4步: matplotlib 的缓存在这里是.json后缀的文件,直接删除,重启后Spyder会自动更新字体文件信息。
第5步: 为了实现绘图显示正常宋体文字
在编辑器中输入:
font_options = {
‘family’ : ‘serif’, # 设置字体家族
‘serif’ : ‘SimSun’, # 设置字体
}
plt.rc(‘font’,**font_options)
或者输入:
plt.rcParams[‘font.sans-serif’] = [‘SimSun’]
第6步: 效果前后对比
乱码/显示方块
正常显示宋体
第7步: 这里的缓存字体文件日期已经更新
更多推荐



所有评论(0)