在学习《机器学习理论与实践》——1 机器学习编程语言基础中,使用Matplotlib画图(在坐标轴或绘图区显示中文)时,产生AttributeError: 'Text' object has no property 'FontSize' 错误解决。
AttributeError: 'Text' object has no property 'FontSize' 错误表明你正在尝试访问 Matplotlib 中 Text 对象不存在的属性 FontSize。
在 Matplotlib 中,文本大小 属性称为 fontsize,而不是 FontSize。属性名称对于 Python 来说是大小写敏感的,因此应使用 fontsize 而不是 FontSize。
原代码:
# 第二种方法:在有中文输入的地方增加fontproperties='SimHei'的设置
import matplotlib.pyplot as plt
import numpy as np
# 在[0,10]之间生成等距离的50个x值
x=np.linspace(0,10,50)
y=x**2-2*x+10
# 绘图
plt.plot(x,y)
# 此处设置中文字体
plt.xlabel('x坐标',fontproperties='SimHei',FontSize=20)
# 没有设置中文字体
plt.ylabel('y坐标')
# 没有设置中文字体
plt.title('显示中文的例子')
调用函数,产生错误:
AttributeError: 'Text' object has no property 'FontSize'
修改后:
# 第二种方法:在有中文输入的地方增加fontproperties='SimHei'的设置
import matplotlib.pyplot as plt
import numpy as np
# 在[0,10]之间生成等距离的50个x值
x=np.linspace(0,10,50)
y=x**2-2*x+10
# 绘图
plt.plot(x,y)
# 此处设置中文字体
plt.xlabel('x坐标',fontproperties='SimHei',fontsize=20)
# 没有设置中文字体
plt.ylabel('y坐标')
# 没有设置中文字体
plt.title('显示中文的例子')
运行结果: