matplotlib中文乱码(linux中没有中文字体)

在docker或linux中一劳永逸解决matplotlib中文显示问题

安装

mplfonts的安装方法是pip: $ pip install -U mplfonts

使用

安装好mplfonts之后,需要有一个初始化的配置过程

在终端执行$ mplfonts init即可。

测试

import matplotlib.pyplot as plt
from mplfonts import use_font
 
FONT_NAMES = {
    'Noto Sans Mono CJK SC': 'Noto等宽',
    'Noto Serif CJK SC': 'Noto宋体',
    'Noto Sans CJK SC': 'Noto黑体',
    'Source Han Serif SC': '思源宋体',
    'Source Han Mono SC': '思源等宽',
    'SimHei': '微软雅黑'
}
 
def test_chinese():
    for font_name, desc in FONT_NAMES.items():
        use_font(font_name)
        fig = plt.figure(figsize=(4, 1))
         
        ax = plt.Axes(fig, [0., 0., 1., 1.])
        ax.set_axis_off() 
        fig.add_axes(ax)
         
        plt.text(.1, .6, font_name, fontsize=20)
        plt.text(.1, .2, desc, fontsize=20)
 
        plt.show()
 
test_chinese()

参考文献

https://www.cnblogs.com/YeewahChan/p/use_chinese_in_matplotlib.html#:~:text=在docker或linux中一劳永逸解决matplotlib中文显示问题 安装 mplfonts的安装方法是pip%3A %24 pip install -U ,mplfonts%20%E4%BD%BF%E7%94%A8%20%E5%AE%89%E8%A3%85%E5%A5%BDmplfonts%E4%B9%8B%E5%90%8E%EF%BC%8C%E9%9C%80%E8%A6%81%E6%9C%89%E4%B8%80%E4%B8%AA%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E9%85%8D%E7%BD%AE%E8%BF%87%E7%A8%8B%20%E5%9C%A8%E7%BB%88%E7%AB%AF%E6%89%A7%E8%A1%8C%20%24%20mplfonts%20init%20%E5%8D%B3%E5%8F%AF%E3%80%82

posted @ 2024-05-16 09:37  然皓  阅读(1324)  评论(0)    收藏  举报