Python——箱型图

箱形图最大的优点就是不受异常值的影响,可以以一种相对稳定的方式描述数据的离散分布情况。

1 基本语法 

Axes.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, 
widths=None, patch_artist=None, bootstrap=None, usermedians=None, 
conf_intervals=None, meanline=None, showmeans=None, showcaps=None, 
showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None, 
medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_ticks=True, 
autorange=False, zorder=None, *, data=None)

 注释:python 绘制箱型图_python 箱型图_Vergil_Zsh的博客-CSDN博客

Python 箱型图的绘制并提取特征值_python画箱型图_流浪猪头拯救地球的博客-CSDN博客

2 单个示例

fig = plt.figure(figsize=(4, 6))  # 指定绘图对象宽度和高度
sns.boxplot(train_data['V0'],orient="v", width=0.5)

3 多个示例 

column = train_data.columns.tolist()[:39]  # 列表头
fig = plt.figure(figsize=(80, 60), dpi=75)  # 指定绘图对象宽度和高度
for i in range(38):
    plt.subplot(5, 8, i + 1)  # 5行8列子图
    sns.boxplot(train_data[column[i]], orient="v", width=0.5)  # 箱式图
    plt.ylabel(column[i], fontsize=36)
plt.show()

### 使用 Matplotlib 和 Seaborn 绘制箱型图 #### 导入必要的库 为了使用 `matplotlib` 和 `seaborn` 进行绘图,首先需要导入这些库。如果尚未安装这两个库,则可以通过命令 `pip install matplotlib seaborn` 安装[^1]。 ```python import matplotlib.pyplot as plt import seaborn as sns import pandas as pd ``` #### 创建样本数据集 创建一个简单的 Pandas DataFrame 来模拟实际应用中的情况。这里构建了一组不同类别的数值数据以便于展示箱型图的功能。 ```python data = { 'Category': ['A', 'B', 'C'] * 30, 'Values': (list(range(30)) + list(range(28, -2, -2)) + [7]*30) } df = pd.DataFrame(data) print(df.head()) ``` #### 使用 Matplotlib 绘制箱型图 可以直接调用 `plt.boxplot()` 方法并传入相应的参数来绘制基本的箱型图。对于分类变量的情况,可以先按类别分组再分别绘制每个类别的箱型图。 ```python fig, ax = plt.subplots() for category in df['Category'].unique(): subset = df[df['Category'] == category]['Values'] positions = [ord(category)-64] # 将'A'转换成位置1,'B'->2... bp = ax.boxplot(subset, positions=positions, widths=0.6) ax.set_xticklabels(['A', 'B', 'C']) plt.title('Box Plot using Matplotlib') plt.xlabel('Categories') plt.ylabel('Value Distribution') plt.show() ``` #### 使用 Seaborn 绘制更加美观的箱型图 相比于原生的 `matplotlib` 接口,`seaborn` 提供了更为简洁易读的方法——`sns.boxplot()`,能够快速生成带有更多默认样式优化后的箱型图,并且支持更多的自定义选项[^3]。 ```python plt.figure(figsize=(8, 6)) sns.boxplot(x='Category', y='Values', data=df, palette="Set3") plt.title('Box Plot with Seaborn') plt.xlabel('Categories') plt.ylabel('Value Distributions') # 显示异常点的具体数值标签 fliers = [] # 存储所有的离群点坐标 for line in plt.gca().get_lines(): if line.get_marker() not in ["None", ""]: fliers.extend(line.get_data()[1]) for fly in fliers: plt.text(fly+0.1, fly, str(round(fly)), ha='left', va='center') plt.tight_layout() plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值