matplotlib中文乱码问题 解决 有代码例子

Matplotlib是Python的一个很好的绘图包,但是其本身并不支持中文(貌似其默认配置中没有中文字体),所以如果绘图中出现了中文,就会出现乱码。
如:

import numpy as np
import matplotlib.pyplot as plt

c=np.random.randn(100)*100
plt.plot(c)
plt.ylabel('数值')
plt.xlabel('序列')
plt.title('例子')
plt.show()

出现乱码

在这里插入图片描述
解决乱码
window 系统添加下面三行可以解决

from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

例子

import numpy as np
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
c=np.random.randn(100)*100
plt.plot(c)
plt.ylabel('数值')
plt.xlabel('序列')
plt.title('例子')
plt.show()

在这里插入图片描述

也可以添加其他字体:
在控制面板 找到字体
在这里插入图片描述
如我们选择华文仿宋:
查看其属性
复制对象名称:路径

代码改为


import numpy as np
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\STFANGSO.TTF')
c=np.random.randn(100)*100
plt.plot(c)
plt.ylabel('数值',fontproperties=zhfont1)
plt.xlabel('序列',fontproperties=zhfont1)
plt.title('例子',fontproperties=zhfont1)
plt.show()

在这里插入图片描述

注意:
有些字体,只是显示在上面啦,好像没有安装,导入程序画图会失败(,本机无该字体)

猜你喜欢

转载自blog.csdn.net/kobeyu652453/article/details/106779913
今日推荐