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