In [1]:
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontManager
%matplotlib inline
import numpy as np
import subprocess
检测matplotlib可用字体
In [2]:
fm = FontManager()
mat_fonts=set(f.name for f in fm.ttflist)
mat_fonts
Out[2]:
一般来说,SimHei应该都是包含在内的,只需在画图时指定字体即可
如果检测不到可用中文字体,可以手动安装字体
检测matplotlib字体文件夹
In [3]:
mpl.matplotlib_fname()
Out[3]:
字体文件夹应该位于和mpl-data同级的位置,下载中文字体后放入ttf文件夹内即可(尚未测试)
In [4]:
# 可选项
mpl.font_manager._rebuild() #reload一下
In [5]:
font_name = "SimHei"
# font_name = "KaiTi"
mpl.rcParams['font.family']= font_name # 指定字体,实际上相当于修改 matplotlibrc 文件 只不过这样做是暂时的 下次失效
mpl.rcParams['axes.unicode_minus']=False # 正确显示负号,防止变成方框
t = np.linspace(0, 2*np.pi, 1000, endpoint=False)
y = np.sin(t)
fig, ax = plt.subplots()
ax.set_xlabel(u"text for t轴")
ax.set_ylabel(u"text for y轴")
ax.set_title(u"t和y对应关系")
ax.plot(t,y)
plt.savefig("test.png", bbox_inches='tight', dpi = 1000)
plt.text(0.5, 0.5, s=u'测试')
plt.show()