箱型图+打印异常值
- 写在最前面
- 原文代码
- 后面补充
- 准备工作
- 绘制箱型图
- 识别和打印异常值
- 完整代码
- 代码升级版本
- 总结
写在最前面
读取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来绘制箱型图,并如何识别和打印异常值。
准备工作
在开始之前,确保已经安装了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库使得绘制箱型图和标记异常值变得非常容易。通过这种方式,您可以更好地理解数据的分布特征,并采取适当的措施来处理异常值,以确保数据分析的准确性和可靠性。希望本博客对于学习如何绘制箱型图和识别异常值的过程有所帮助。