使用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 代码运行效果

相关推荐
dabidai1 天前
AI基础:数据可视化简易入门(Matplotlib和Seaborn)
人工智能·信息可视化·matplotlib
紫雾凌寒3 天前
解锁机器学习核心算法 | 随机森林算法:机器学习的超强武器
人工智能·python·算法·随机森林·机器学习·scikit-learn·matplotlib
紫雾凌寒5 天前
解锁机器学习核心算法 | 逻辑回归:不是回归的“回归”
python·深度学习·算法·机器学习·逻辑回归·scikit-learn·matplotlib
lihuayong8 天前
计算机视觉中图像的基础认知
人工智能·opencv·计算机视觉·matplotlib·图像基本属性·rgb 三通道彩色·单通道灰度图像
大数据魔法师8 天前
Python数据可视化 - Matplotlib教程
python·matplotlib
WANGWUSAN6613 天前
Python教程:使用Matplotlib模块画柱状图、饼形图、直方图
开发语言·经验分享·python·程序人生·matplotlib·数据可视化
XYX的Blog13 天前
Matplotlib基础01( 基本绘图函数/多图布局/图形嵌套/绘图属性)
matplotlib
一名技术极客22 天前
Python 数据分析 - Matplotlib 绘图
python·数据分析·matplotlib
SteveKenny23 天前
Python 梯度下降法(四):Adadelta Optimize
开发语言·python·深度学习·机器学习·numpy·matplotlib
aiweker25 天前
Python Matplotlib库:从入门到精通
开发语言·python·matplotlib