箱型图+打印异常值

  • 写在最前面
  • 原文代码
  • 后面补充
  • 准备工作
  • 绘制箱型图
  • 识别和打印异常值
  • 完整代码
  • 代码升级版本
  • 总结


写在最前面

读取csv文件,绘制箱型图(竖着的),并打印出所有异常值。

更新conda及所有库
conda update -n base -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main conda

原文发布时间:2023-03-24 22:39:54
质量分太低,因此进行该篇博客的完善更新

原文代码

import pandas as pd
import matplotlib.pyplot as plt

import matplotlib as mpl
mpl.rcParams['font.family'] = 'Microsoft YaHei' # 设置中文字体为微软雅黑
mpl.rcParams['axes.unicode_minus'] = False # 解决负号显示问题

# 读取csv文件
data = pd.read_csv('data.csv', encoding='gkb')

# 绘制箱型图
fig, ax = plt.subplots(figsize=(6,15))
ax.boxplot(data.values, vert=False)

# 设置x轴标签和标题
ax.set_yticklabels(data.columns, fontsize=12)
ax.set_xlabel('数值', fontsize=14)
ax.set_title('数据分布', fontsize=16)

# 打印异常值
for col in data.columns:
    q1 = data[col].quantile(0.25)
    q3 = data[col].quantile(0.75)
    iqr = q3 - q1
    outliers = data[(data[col] < q1 - 1.5 * iqr) | (data[col] > q3 + 1.5 * iqr)][col]
    if not outliers.empty:
        print(f'{col}的异常值:\n{outliers}\n')
        
plt.show()

后面补充

标题: 使用Python绘制箱型图并识别异常值

箱型图是一种常用的数据可视化工具,用于显示数据的分布、中位数、四分位数以及异常值。Python提供了多个库来绘制箱型图,其中最常用的是Matplotlib和Seaborn。本博客将介绍如何使用Matplotlib和Seaborn来绘制箱型图,并如何识别和打印异常值。

python绘制箱型图+打印异常值_ipython


python绘制箱型图+打印异常值_经验分享_02

准备工作

在开始之前,确保已经安装了Matplotlib和Seaborn库。如果没有安装,可以使用以下命令安装:

pip install matplotlib seaborn

绘制箱型图

首先,让我们导入所需的库,并创建一些示例数据用于箱型图绘制:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

import matplotlib as mpl
mpl.rcParams['font.family'] = 'Microsoft YaHei' # 设置中文字体为微软雅黑
mpl.rcParams['axes.unicode_minus'] = False # 解决负号显示问题

# 创建示例数据
data = np.random.randn(100)

接下来,使用Matplotlib绘制简单的箱型图:

plt.figure(figsize=(6, 4))
plt.boxplot(data)
plt.title('简单箱型图')
plt.show()

上述代码创建了一个包含100个随机值的数据集,并绘制了一个简单的箱型图。箱型图显示了数据的中位数、四分位数、异常值等信息。

识别和打印异常值

要识别和打印箱型图中的异常值,我们可以使用Seaborn库来更直观地展示异常值的分布。首先,让我们导入Seaborn并使用示例数据:

import seaborn as sns

# 创建示例数据
data = np.random.randn(100)

然后,使用Seaborn的boxplot函数绘制箱型图,并将异常值标记为红色:

plt.figure(figsize=(6, 4))
sns.boxplot(y=data, color='skyblue')
sns.swarmplot(y=data, color='red')
plt.title('箱型图与异常值')
plt.show()

在上述代码中,sns.swarmplot函数用红色标记了箱型图中的异常值。这使得异常值更加明显,可以轻松识别它们。

完整代码

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

import matplotlib as mpl
mpl.rcParams['font.family'] = 'Microsoft YaHei' # 设置中文字体为微软雅黑
mpl.rcParams['axes.unicode_minus'] = False # 解决负号显示问题

# 创建示例数据
data = np.random.randn(100)

# 绘制简单的箱型图
plt.figure(figsize=(6, 4))
plt.boxplot(data)
plt.title('简单箱型图')
plt.show()

# 重新创建示例数据
data = np.random.randn(100)

# 绘制箱型图并标记异常值
plt.figure(figsize=(6, 4))
sns.boxplot(y=data, color='skyblue')
sns.swarmplot(y=data, color='red')
plt.title('箱型图与异常值')
plt.show()

代码升级版本

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

# df是要操作的DataFrame

# 创建一个大的图
plt.figure(figsize=(15, 8))

# 遍历每个指标列并绘制箱线图
for i, col in enumerate(df.loc[:, 'xx':'xx'].columns):
    plt.subplot(4, 5, i + 1)  # 创建一个子图,2行5列的排列方式
    sns.boxplot(data= df[col], orient='horizontal', color='lightblue')  # 绘制单个箱线图
    plt.title(col)  # 设置子图标题

plt.tight_layout()  # 调整子图的布局
plt.show()

总结

箱型图是一种强大的数据可视化工具,用于展示数据分布和识别异常值。Python的Matplotlib和Seaborn库使得绘制箱型图和标记异常值变得非常容易。通过这种方式,您可以更好地理解数据的分布特征,并采取适当的措施来处理异常值,以确保数据分析的准确性和可靠性。希望本博客对于学习如何绘制箱型图和识别异常值的过程有所帮助。