【Python】UserWarning: Glyph 32447 (\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) DejaVu Sans.
·
一、报错截图

二、报错代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# 构造非线性数据
np.random.seed(0)
X = np.linspace(-3, 3, 100).reshape(-1, 1)
y = 2 + 0.5 * X + X**2 + np.random.randn(100, 1) * 1.5
# 线性回归拟合
model = LinearRegression()
model.fit(X, y)
y_pred = model.predict(X)
# 绘图
plt.scatter(X, y, color="skyblue", label="真实数据")
plt.plot(X, y_pred, color="red", linewidth=2, label="线性回归拟合")
plt.legend()
plt.title("线性回归无法捕捉非线性趋势")
plt.show()
三、报错原因
- 解释:这个提示是 matplotlib 在绘图时无法显示中文字体 的警告,不会影响程序运行,只是图中的中文字符(如“线”“性”等)显示为空白或方框。
- 原因:默认字体是
DejaVu Sans,它不支持中文字符(CJK 字体)。IPython 在显示图像时尝试渲染中文文字,于是就报出这个 warning。
四、解决方案
加入以下代码
import matplotlib.pyplot as plt
# 设置中文字体(例如 SimHei 或 Microsoft YaHei)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 黑体
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
五、成功截图

更多推荐

所有评论(0)