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

matplotlib.pyplot 绘图中文字体乱码解决方案

程序员文章站 2022-03-18 13:41:49
...
  • 背景

在使用matplotlib.pyplot  进行绘图时,经常会出现中文字体乱码。是由于其内置的字符集不支持中文字符,需要重新配置字符集。

  • 解决方案一

通过pl.rc参数设置pyplot的字符集,代码如下:

from matplotlib import pyplot as pl

# 设置全局字体类型
# 字典变量
font = {'family':'SimHei',
        'weight':'bold',
        'size':'12'}
pl.rc('font',**font)
# 上面设置字体的方式等价于下面这种
pl.rc('font',family='SimHei',weight='bold',size='12')
  • 解决方案二:

通过matplotlib 提供的font_manager 模块,设置字体文件。(win10:可以在C:\Windows\Fonts 找到系统已安装的字体文件按)

# 另一种设置字体的方式
from matplotlib.font_manager import  FontProperties
font = FontProperties(fname=r"C:\Windows\Fonts\simkai.TTF")
# font = FontProperties(family='SimHei')

# 分别将字体设置到X轴,Y轴等其他有中文字体的地方
yeas = [1950,1960,1970,1980,1990,2000]

# figure (宽,高) ,清晰度
pl.figure(figsize=(15,8),dpi=80)

# 设置X轴刻度,步长只能是整数
_x = range(min(yeas),max(yeas),5)

# 设置X轴label
_x_label = ['{}年'.format(i) for i in _x]
pl.xticks(_x,_x_label,FontProperties=font)
years = [i for i in _x]

pl.title("GDP模式展示",FontProperties=font)
pl.ylabel("十亿美元",FontProperties=font)
  • 解决方案三

 直接通过修改font.sans-serif 参数改变绘图时的字体。代码如下:

# 手动设置字体
from matplotlib import pyplot as pl
pl.rcParams['font.sans-serif'] = ['SimHei']
  •  参考资料

https://blog.csdn.net/weixin_44675377/article/details/96367050

 

 

相关标签: Python 学习