如何在散点值图中标注异常值点
时间: 2024-01-27 15:30:33 浏览: 107
要在散点图中标注异常值点,您可以使用`matplotlib`库的`annotate`函数来添加文本注释。
以下是修改后的代码示例,用于在散点图中标注异常值点:
```python
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import numpy as np
# 读取CSV文件
data = pd.read_csv('your_file.csv')
# 提取需要进行预测的两列数据
X = data['column1'].values.reshape(-1, 1) # 第一列数据
y = data['column2'].values # 第二列数据
# 创建线性回归模型
model = LinearRegression()
# 拟合模型
model.fit(X, y)
# 进行预测
prediction = model.predict(X)
# 计算残差
residuals = y - prediction
# 计算均值和标准差
mean = np.mean(residuals)
std = np.std(residuals)
# 定义异常值的阈值(例如,可以选择3倍标准差)
threshold = 3 * std
# 检测异常值
outliers = np.where(np.abs(residuals - mean) > threshold)
# 绘制散点图
plt.scatter(X, y, color='blue', label='Actual')
# 绘制回归线
plt.plot(X, prediction, color='red', linewidth=2, label='Regression')
# 添加异常值标注
for index in outliers[0]:
plt.annotate('Outlier', (X[index], y[index]), textcoords="offset points", xytext=(0,10), ha='center', fontsize=8, color='red')
# 添加图例和标签
plt.legend()
plt.xlabel('X')
plt.ylabel('Y')
# 显示图形
plt.show()
```
请将代码中的`your_file.csv`替换为您的CSV文件路径,并将`column1`和`column2`替换为您想要进行预测的两列数据。
这样,您就可以在散点图中标注异常值点了。代码会在异常值点上方添加红色文本注释。您可以根据需要自定义注释的位置、字体大小和颜色。
阅读全文