欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python - matplotlib库 - 中文字体设置

程序员文章站 2022-03-21 11:42:37
...

Python - matplotlib库 - 中文字体设置

在matplotlib绘制折线图柱状图时,如果对x,y,图表标题,直接使用plot.xlabel(“时间”);plot.(ylabel(“范围”)进行命名,这时显示的不是中文而是空格。

解决方法如下:

方法一(全局设置):

导入matplotlib库,使用mpl.rcParams[]进行配置即可

#导入matplotlib库
import matplotlib as mpl
#配置之后便可使用
mpl.rcParams['font.family']='SimHei'
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False     # 正常显示负号
#可使用该例子查看效果
from matplotlib import pyplot as plt
plt.plot([1,2,3],[1,2,3])
plt.title('例子')
plt.xlabel('时间')
plt.ylabel('范围')
plt.show()

方法二(局部设置):

该方法需要自行百度下载simhei.ttf文件很简单,还可以自行设置字体的字号等。局部设置的意思是可对x,y轴设置不同的字体字号。
simhei.ttf下载地址:http://www.downcc.com/font/7665.html
(下载时注意别点到辣鸡流氓软件)

#配置中文字体
#导入matplotlib.font_manager
from matplotlib.font_manager import FontProperties 
#代码文件和ttf文件在同一文件夹下可使用绝对地址
#当代码和simhei.ttf文件不在同一个文件夹下时需使用相对地址
font = FontProperties(fname=r"simhei.ttf", size=14)
#相对地址
font1 = FontProperties(fname=r"c:\windows\fonts\STHUPO.TTF")
font2 = FontProperties(fname=r"c:\windows\fonts\STCAIYUN.TTF")

#可使用该例子查看效果
from matplotlib import pyplot as plt
plt.plot([1,2,3],[1,2,3])
#像设置不同字体时fontpropert=font1或font2
plt.title('例子', fontproperties=font))
plt.xlabel('时间', fontproperties=font))
plt.ylabel('范围', fontproperties=font))
plt.show()

参考文档1:
https://blog.csdn.net/lzp_k2/article/details/93070507?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

参考文档2:
https://blog.csdn.net/qq_17753903/article/details/86260276?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase