Python matplotlib修改默认字体的操作

阿澈
阿澈
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍在Python matplotlib库中解决中文显示乱码的两种方法。一是通过plot函数的prop参数指定FontProperties对象;二是直接修改matplotlibrc配置文件中的font.family或font.serif字段,将默认字体设置为SimHei等支持中文的字体。

matplotlib中文字体显示问题概述

matplotlib是Python中广泛使用的数据可视化库,但其默认配置并不支持中文字体,这往往导致中文显示为方块或乱码,需要用户手动进行配置。

接下来将详细介绍具体的解决步骤。

方法一:通过prop参数指定字体

方法1:在plot中指定prop参数

可以通过matplotlib.font_manager模块下的FontProperties类来加载中文字体文件。

在调用绘图函数时,通过prop属性指定该中文字体对象,从而在图表中正确显示中文。

代码示例


import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
x_data = ['2011', '2012', '2013', '2014', '2015', '2016', '2017']
# 定义2个列表分别作为两条折线的Y轴数据
y_data = [58000, 60200, 63000, 71000, 84000, 90500, 107000]
y_data2 = [52000, 54200, 51500,58300, 56800, 59500, 62700]
# 指定折线的颜色、宽度、线形
ln1, = plt.plot(x_data, y_data, color='red', linewidth=2.0,
        linestyle='--', label='A书年销量')
ln2, = plt.plot(x_data, y_data2, color='blue', linewidth=2.0,
        linestyle='-.', label='B书年销量')
# 使用my_font存出一个加载的中文字体
my_font = fm.FontProperties(fname='C:\Windows\Fonts\YaHei.Consolas.1.12.ttf')
# 赊着prop参数未该字体
plt.legend(loc='best', prop=my_font)
plt.show()
var foo = 'bar';

方法二:修改默认配置文件

方法2:修改matplotlib默认字体

首先,在交互环境中获取matplotlib配置文件的保存位置。

>>>import matplotlib >>>matplotlib.matplotlib_fname() 'G:\\Anaconda3\\envs\\PyProjects\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'

找到配置文件后,打开文件并定位到字体相关配置行。

# font.family : sans-serif

将该行注释去掉,并将字体名称修改为系统中已安装且支持中文的字体,例如SimHei(黑体)。

font.family : SimHei

也可以使用Yahei Consolas Hybrid字体(需自行安装),但尝试Microsoft Yahei和msyh时可能会报错,具体原因尚不明确。

补充:修改默认配置添加雅黑字体

补充知识:修改 matplotlib 的默认配置添加雅黑字体

根据Anaconda的安装路径找到对应的配置文件。

E:\software\anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc

打开该文件,找到font.sans-serif这一行,删除前面的注释符号,并添加所需的字体名称。

修改完成后,重新启动Jupyter Notebook即可生效。

在新开启的文件中输入代码,即可正常显示汉字。

import matplotlib as mpl mpl.rcParams['font.serif'] = ['SimHei']

以上介绍了Python matplotlib修改默认字体的两种主要操作,希望能为读者提供参考。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表