120. 解决matplotlib绘图中文无法显示的问题

  1. 外部安装 mplfonts
pip install mplfonts
mplfonts init
  1. 代码调用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
  1. 示例与结果图
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. 其他方法
  • (1) 手动下载中文字体"SimHei.ttf",放入"lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf",在每次应用时指定font.
  • (2) matplotlib.rcParams['font.sans-serif'] = ['SimHei']方法不可用。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容