使用 matplotlib 绘制函数图像的时候,发现设置图像名称或图例须要汉字显示的时候只能获得 空格
生成图像中的中文错误效果 python
python中的matplotlib仅支持Unicode编码,默认是不显示中文的.
python文件中添上一段语句
plt.rcParams['font.sans-serif']=['Simhei']
制定加载本地的字体文件
在python文件中导入matplotlib的字体控制方法windows
from matplotlib.font_manager import FontProperties
另设font变量存储设置好的属性函数
font = FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',size=14)
设置 title 内容时将 font的存储对象赋给 fontproperties
属性字体
plt.title(u'y=x 与 y=x^0.5 的函数图像比较',fontproperties = font)
> 注意中文字符前必定要加
u``编码
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0,100) # 设置自变量的取值[0,100] y1 = x y2 = x**0.5 plt.figure() plt.plot(x,y1,label='y=x') plt.plot(x,y2,label='y=x^0.5',color='red') plt.title('y=x 与 y=x^0.5 的函数图像比较') plt.legend() plt.show()
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0,100) # 设置自变量的取值[0,100] y1 = x y2 = x**0.5 plt.figure() plt.plot(x,y1,label='y=x') plt.plot(x,y2,label='y=x^0.5',color='red') plt.title('y=x 与 y=x^0.5 的函数图像比较') plt.rcParams['font.sans-serif']=['Simhei'] plt.legend() plt.show()
import numpy as np from matplotlib.font_manager import FontProperties import matplotlib.pyplot as plt x = np.linspace(0,100) # 设置自变量的取值[0,100] y1 = x y2 = x**0.5 plt.figure() plt.plot(x,y1,label='y=x') plt.plot(x,y2,label='y=x^0.5',color='red') font = FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',size=14) plt.title(u'y=x 与 y=x^0.5 的函数图像比较',fontproperties = font) plt.legend() plt.show()