python - How to load .ttf file in matplotlib using mpl.rcParams? - Stack Overflow https://stackoverflow.com/questions/16574898/how-to-load-ttf-file-in-matplotlib-using-mpl-rcparams
font_manager — Matplotlib 2.2.2 documentation https://matplotlib.org/api/font_manager_api.html?highlight=font%20_manager#module-matplotlib.font_manager
如何将matplotlib中全局的中文设置成宋体 - CSDN博客 https://blog.csdn.net/vinsuan1993/article/details/78511870
步骤:
1、由于matplotlib默认不支持ttc,所以可以将ttc转换ttf先。将Windows字体 simsun.ttc上传到 https://transfonter.org/ttc-unpack 在线转换成TTF,
2、得到simsun.ttf和nsimsun.ttf,将两个ttf文件放到PYTHON安装目录的 Lib\site-packages\matplotlib\mpl-data\fonts\ttf 子目录下。
例如:我的电脑上,如下:C:\Users\vinsuan\AppData\Local\Programs\Python\Python35\Lib\site-packages\matplotlib\mpl-data\fonts\ttf
3、删除字体缓存以便重新生成字体缓存:清空$HOME/.matplotlib/文件夹下的所有文件及文件夹。
例如:我的电脑上,如下:C:\Users\vinsuan\.matplotlib
mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = 'NSimSun,Times New Roman'//中文除外的设置成New Roman,中文设置成宋体
mpl.rcParams['axes.unicode_minus'] = False
mpl.rcParams['font.sans-serif'] = ['SimHei']#也可设置成黑体
ax = plt.subplot(111)
# 设置刻度字体大小
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
# 设置坐标标签字体大小
ax.set_xlabel(..., fontsize=20)
ax.set_ylabel(..., fontsize=20)
# 设置图例字体大小
ax.legend(..., fontsize=20)
选择如何显示刻度
ax.xaxis.set_ticks_position(‘none’)
ax.yaxis.set_ticks_position(‘right’)
matplotlib的配置参数rcParams
配置文件的读入可以使用 rc_params 函数,它返回一个配置字典:
matplotlib.rc_params()
{‘agg.path.chunksize’: 0,
‘axes.axisbelow’: False,
‘axes.edgecolor’: ‘k’,
‘axes.facecolor’: ‘w’,
… …
在matplotlib模块载入的时候会调用rc_params,并把得到的配置字典保存到rcParams变量中:
matplotlib.rcParams
{‘agg.path.chunksize’: 0,
‘axes.axisbelow’: False,
… …
#matplotlib将使用rcParams中的配置进行绘图。用户可以直接修改此字典中的配置,所做的改变会反映到此后所绘制的图中。例如下面的脚本所绘制的线将带有圆形的点标识符:
matplotlib.rcParams[“lines.marker”] = “o”
import pylab
pylab.plot([1,2,3])
pylab.show()
matplotlib.rc(“lines”, marker=”x”, linewidth=2, color=”red”) #为了方便配置,可以使用rc函数,下面的例子同时配置点标识符、线宽和颜色:
matplotlib.rcdefaults() #如果希望恢复到缺省的配置(matplotlib载入时从配置文件读入的配置)的话,可以调用 rcdefaults 函数。
matplotlib.rcParams.update( matplotlib.rc_params() )#如果手工修改了配置文件,希望重新从配置文件载入最新的配置的话,可以调用: