赞
踩
HXDM 20240303 更新
Ubuntu2204 没有 Times New Roman
字体,需要安装hhh
在Linux下做文档、作图的时候,可能需要用到Arial和Times New Roman等字体。但是由于版权问题,Linux一般是不直接提供这些字体的。
注意字体也是有版权的!不过有版权也不代表一定会收费。
$ sudo apt install ttf-mscorefonts-installer # 安装 $ sudo fc-cache # 生效
- 1
- 2
由于前面提到版权问题,虽然这部分字体不收费,但是安装时需要用户同意一些协议,同意即可。
执行完成后,用以下指令确认成功:
$ fc-match Arial # 查看Arial $ fc-match Times # 查看Times New Roman
- 1
- 2
参考自:
https://www.cnblogs.com/xia-weiwen/p/10336896.html
HXDM 20211031 更新
看这篇博客:
https://blog.csdn.net/fengdu78/article/details/111189331
这个兄弟写的博客更全
给我自己放一个我最常用的:
import matplotlib.pyplot as plt from matplotlib import font_manager # 查看系统能直接调用的字体 for font in font_manager.fontManager.ttflist: # 查看字体名以及对应的字体文件名 print(font.name, '-', font.fname) """ STSong - C:\Windows\Fonts\STSONG.TTF KaiTi - C:\WINDOWS\Fonts\simkai.ttf Times New Roman - C:\Windows\Fonts\times.ttf """ # 使用 Times New Roman 字体 import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = "Times New Roman"
之前总是遇到Matplotlib中文乱码问题[总是显示为方块]:
我尝试了手动修改Matplotlib
配置文件,有时在ubuntu18.04
下OK,有时又在win10
报错,鲁棒性太差…用户体验极差!
我也尝试了重载配置文件,就是修改matplotlib.rcParams
部分,是的,也是时好时坏,这两个都和你的系统字体有关系,好几次,明明设置是对的,结果非得重启一下才能正常显示,很玄学!
算了,直接用使用自定义字体方案吧 [本方案最佳] 即走即用,不用和开发环境作斗争…
煮个例子吧:
import numpy as np
import pylab as pl
import matplotlib.font_manager as fm
myfont = fm.FontProperties(fname=r'D:\Fonts\simkai.ttf') # 设置字体
t = np.arange(0.0,2.0 * np.pi,0.01) # 自变量取值范围
s = np.sin(t) # 计算正弦函数值
z = np.cos(t) # 计算余弦函数值
pl.plot(t,s,label='正弦')
pl.plot(t,z,label='余弦')
pl.xlabel('x-变量',fontproperties=myfont,fontsize=24) #设置标签
pl.ylabel('y-正弦余弦函数值',fontproperties=myfont,fontsize=24)
pl.title('sin-cos函数图像',fontproperties=myfont,fontsize=32) #图像标题
pl.legend(prop=myfont)
pl.show()
我用的是【瘦金体】放在图上好像有些喜感,嘿嘿
总结一下
先调用matplotlib.font_manager.FontProperties
指定字体文件,返回对象myfont
之后在使用字体的时候,传入参数fontproperties=myfont
即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。