- 外部安装 mplfonts
pip install mplfonts
mplfonts init
- 代码调用CKJ字体
from mplfonts import use_font
use_font('Noto Sans CJK SC')
该方法自动接入CJK中文 韩文 日文等字体,use_font介绍如下:
def use_font(font="Noto Sans CJK SC"):
"""To choose the font that you want to use
Args:
font (str, optional): The font name that you want to use.
Defaults to 'Noto Sans CJK SC'.
"""
matplotlib.rcParams["font.family"] = "sans-serif"
matplotlib.rcParams["font.sans-serif"] = [font, "sans-serif"]
matplotlib.rcParams["axes.unicode_minus"] = False
- 示例与结果图
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(8, 5))
plt.plot(x, y, label='正弦曲线')
plt.title('这是一个带中文标题的图表')
plt.xlabel('横坐标(时间)')
plt.ylabel('纵坐标(幅度)')
plt.legend()
# plt.grid(True)
plt.show()

结果图
x = np.linspace(0, 10, 100)
y = np.log(x)
plt.figure(figsize=(8, 5))
plt.plot(x, y, label='log曲线')
plt.title('这是一个带中文标题的图表2')
plt.xlabel('横坐标(时间)')
plt.ylabel('纵坐标(幅度)')
plt.legend()
plt.show()

结果图2
- 其他方法
- (1) 手动下载中文字体"SimHei.ttf",放入"lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf",在每次应用时指定
font. - (2)
matplotlib.rcParams['font.sans-serif'] = ['SimHei']方法不可用。