You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Matplotlib绘制Z-score异常检测结果:正常点蓝异常点红

使用Matplotlib绘制Z-score异常检测结果散点图

你已经完成了Z-score异常值识别的基础代码,接下来可以结合Matplotlib实现需求中的散点图效果,完整代码如下:

import numpy as np
import matplotlib.pyplot as plt

# 原始数据
data = [1, 2, 3, 4, 100]

# 计算均值和标准差
mean = np.mean(data) 
sd = np.std(data)

threshold = 2

outliers = []
for i in data: 
    z = (i - mean) / sd  # 计算z-score
    if abs(z) > threshold:  # 识别异常值
        outliers.append(i)

# 分离正常数据和异常数据
normal_data = [x for x in data if x not in outliers]

# 准备x轴坐标(让散点分布更清晰)
x_normal = range(len(normal_data))
x_outliers = [len(normal_data)]  # 将异常值放在正常数据右侧

# 绘制散点图
plt.scatter(x_normal, normal_data, color='blue', label='正常数据')
plt.scatter(x_outliers, outliers, color='red', label='异常值')

# 添加图例、标题和坐标轴标签
plt.legend()
plt.title('Z-score异常检测结果')
plt.xlabel('数据索引')
plt.ylabel('数据值')

# 显示图形
plt.show()

代码说明:

  • 导入matplotlib.pyplot模块用于绘图
  • 通过列表推导式从原始数据中分离出正常数据(不在异常值列表中的数据)
  • 为两类数据分配不同的x轴坐标,让散点分布更直观
  • 分别调用plt.scatter()绘制正常点(蓝色)和异常点(红色),并设置图例区分
  • 添加标题、坐标轴标签,最后用plt.show()显示图形

内容的提问来源于stack exchange,提问作者Vinayak Raj Urs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:45:08