|
import numpy as np
import matplotlib.pyplot as plt
# 1. 解决中文乱码:设置字体为 SimHei (黑体) 或
Microsoft YaHei (微软雅黑)
# Windows 系统通常自带 SimHei,如果没有可尝试 'Microsoft YaHei'
plt.rcParams['font.sans-serif'] =
['SimHei']
# 2. 解决负号显示问题:防止负号变成方块
plt.rcParams['axes.unicode_minus'] =
False
# 模拟数据生成 (假设这是你之前的逻辑)
np.random.seed(42)
X = 2 * np.random.rand(100)
y = 1 + 2.5 * X + np.random.randn(100)
# 真实关系 y = 2.5x + 1 + 噪声
# 简单的线性回归计算
(numpy polyfit)
m, b = np.polyfit(X, y, 1)
print(f"拟合结果: 斜率={m:.2f}, 截距={b:.2f}")
# 绘图
plt.figure(figsize=(8, 6))
# 绘制散点图
plt.scatter(X, y, color='blue',
label='样本数据')
# 绘制真实直线 (y =
2.5x + 1.0)
# 注意:使用
r'$...$' 来启用 LaTeX 数学渲染模式
plt.plot(X, 1 + 2.5 * X, 'r--',
label=r'真实模型 ($y=2.5x + 1.0$)')
# 绘制拟合直线
plt.plot(X, m * X + b, 'g-', label=f'拟合模型 ($y={m:.2f}x + {b:.2f}$)')
# 显示图例和标题
plt.legend()
plt.title('线性回归示例')
plt.xlabel('特征值 x')
plt.ylabel('目标值 y')
plt.show()
|