帮我在上述代码中画图方法中添加网格线、图例等元素
时间: 2024-03-11 18:48:13 浏览: 43
网格线的画法
好的,下面是一个更新后的 Python 代码,增加了网格线、图例等元素:
```python
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
# 创建一个随机数据集
np.random.seed(0)
x = np.random.rand(100, 1)
y = 2 * x + np.random.rand(100, 1)
# 创建线性回归模型
model = LinearRegression()
# 训练模型
model.fit(x, y)
# 预测新数据
x_new = np.array([[0.5], [0.6], [0.7]])
y_new = model.predict(x_new)
# 计算模型的误差和评估指标
y_pred = model.predict(x)
mse = mean_squared_error(y, y_pred)
r2 = r2_score(y, y_pred)
# 输出模型的参数和评估指标
print('斜率:', model.coef_)
print('截距:', model.intercept_)
print('均方误差:', mse)
print('R平方:', r2)
# 绘制训练数据和模型预测结果的散点图
plt.scatter(x, y, label='Training Data')
plt.plot(x, y_pred, color='red', label='Linear Regression')
plt.scatter(x_new, y_new, color='green', label='New Data')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Linear Regression')
plt.grid(True)
plt.legend()
plt.show()
```
这个代码在之前的基础上增加了 `grid` 函数来添加网格线,使用 `legend` 函数来添加图例。具体来说,代码将训练数据、模型预测结果和新数据的散点图都加上了标签,用于在图例中显示。然后在绘图之前,代码使用 `grid` 函数添加网格线,使用 `legend` 函数添加图例,以便更好地展示数据和模型的关系。
需要注意的是,网格线和图例的样式和位置可以根据具体情况进行调整,比如可以使用 `grid` 函数的 `linestyle` 参数来设置网格线的样式,使用 `legend` 函数的 `loc` 参数来设置图例的位置等等。
阅读全文