使用Matplotlib显示中文的方法

1 问题提出

使用图1所示的代码进行matplotlib绘图时,因为其默认不支持中文,此时无法显示正确内容,如图2所示。

图1 matplotlib绘图绘图代码

图2 matplotlib无法显示中文

2 问题解决

2.1 设置全局字体

在图1所示的代码中,第13-15行分别设置了matplotlib绘制图的标题、横坐标标签和纵坐标标签,如果显示以上内容的字体是相同的,则可以通过设置全局字体的方式来解决显示汉字问题。

2.1.1 创建字体类FontProperties的实例

字体类FontProperties在matplotlib.font_manager模块中定义,该类用来存储和处理字体的属性,通过创建其实例来指定使用的字体字号等属性,代码如图3所示。

图3 创建字体类FontProperties实例的代码

其中,第4行代码从matplotlib.font_manager模块中导入FontProperties类;第5行代码指定字体文件的位置;第6行代码创建了FontProperties类的实例font,使用font_path指定的字体文件,字体大小是15。

相关链接1 Windows10系统中的字体文件位置是"C:\\Windows\\Fonts",可以在该位置上选择系统中已经安装好的字体文件。

注意1 图3中第5行代码使用自定义的字体文件1.ttf,因为指定的是相对路径,该字体文件应当与源代码文件在同一路径下。

2.1.2 设置matplotlib使用的字体参数

Matplotlib 使用rcParams来控制各种默认参数,rcParams'font.family'表示使用的字体。设置matplotlib使用的字体参数的代码如图4所示。

图4 设置matplotlib使用的字体参数的代码

第8行代码导入matplotlib模块,第9行代码将rcParams'font.family'设置为font.get_name()的返回值,font即为图3中创建的FontProperties实例,通过该实例调用的get_name()方法获取到的是图3中指定的字体名。

2.1.3 代码运行效果

通过以上设置之后,代码运行效果如图5所示。

图5 代码运行效果

2.2 设置局部字体

如果matplotlib绘制图的标题、x轴标签和y轴标签使用不一样的字体,此时可以通过设置局部字体来实现。

2.2.1 定义局部字体

设置局部字体的代码如图6所示。

图6 设置局部字体的代码

其中,第5-6行设置了用于显示标题的字体title_font;第7-8行设置了用于显示x轴标签的字体x_font;第9-10行设置了用于显示y轴标签的字体y_font。

2.2.2 设置字体

使用如图7所示的代码为不同的标签设置不同的字体。

图7 设置字体的代码

为set_title()、set_xlabel()和set_ylabel()方法添加fontproperties参数,并将该参数设置为图6中创建的不同字体。

2.2.3 代码运行效果

设置不同字体的代码运行效果如图8所示。

图8 代码运行效果

相关推荐
烂蜻蜓2 天前
Matplotlib入门教程(十八):参考文档——接口索引与快速查阅手册
matplotlib
chde2Wang2 天前
Matplotlib数据可视化学习1
学习·matplotlib
烂蜻蜓4 天前
Matplotlib入门教程(十三):imshow() 详解——灰度图、彩色图、热力图与矩阵可视化
线性代数·矩阵·matplotlib
小小龙学IT5 天前
Python Matplotlib 数据可视化库深度解析
python·信息可视化·matplotlib
烂蜻蜓6 天前
Matplotlib入门教程(十一):饼图详解——pie() 函数与占比可视化
matplotlib
烂蜻蜓6 天前
Matplotlib入门教程(十):柱形图详解——bar() 与 barh() 函数完全指南
matplotlib
ctlover10 天前
Matplotlib
matplotlib
for_ever_love__12 天前
Matplotlib——把训练曲线和分布画出来
matplotlib·数据可视化·大模型开发·训练曲线
茶栀(*´I`*)18 天前
【Python数据可视化】Matplotlib从零到精通:图表核心解剖、多子图布局与三大经典图表实战
python·信息可视化·matplotlib
jzshmyt1 个月前
我用 Python 从零“生成“了一个宇宙,然后让它观察自己(v14)
人工智能·pytorch·python·numpy·matplotlib·空间计算·scipy