python中的boxplot用法用法介绍(plt.boxplot)

对于数据分析或统计学习,可视化分析是一种非常重要的方式。而在可视化分析中,boxplot盒图是一种非常常用的方法。那么在python里,我们该如何进行boxplot绘制呢?下面将从多个方面进行详细讲解。

一、boxplot的基本概念

Boxplot是一种用来展示数据分布情况的图表,主要用来观察一组数据的离散程度、异常值状况和分位数情况等。Boxplot中的盒子覆盖了数据的中间50%的值(从第一四分位数到第三四分位数),而线段则代表了上下四分位之外的数据点(称之为离群点)。以下为boxplot常用的几个概念:

  • 上四分位数(Q3):数据中上半部分的中位数
  • 下四分位数(Q1):数据中下半部分的中位数
  • 中位数(median):数据的中间值,即所有数值排序后中间位置的值
  • 内限:上限和下限之间的数值称为内限。常规取值为:下限=Q1-1.5×IQR,上限=Q3+1.5×IQR,其中IQR=Q3-Q1为四分位距。

二、使用seaborn进行boxplot绘制

Python中一个常用的绘制boxplot的工具为seaborn库。通过调用seaborn库的boxplot函数,我们可以非常方便的对数据进行可视化。

示例代码:

import seaborn as sns
import matplotlib.pyplot as plt

# 载入数据
tips = sns.load_dataset("tips")

# 绘制boxplot
sns.boxplot(x="day", y="total_bill", data=tips)
plt.show()

此处采用了seaborn库中的load_dataset函数获取tips数据集。data参数用于指定要进行绘制的数据,而x和y参数则分别指定数据中的x和y轴。

三、使用matplotlib进行boxplot绘制

除了seaborn库之外,我们也可以使用matplotlib库进行boxplot的绘制。在使用matplotlib绘制boxplot时,我们需要使用到一个BoxPlot类以及它的方法。

示例代码:

import matplotlib.pyplot as plt
import numpy as np

# 载入数据
np.random.seed(10)
data = np.random.normal(100, 20, 200)

# 绘制boxplot
plt.boxplot(data)
plt.show()

在上述示例代码中,我们利用numpy生成了一个随机数据。然后通过matplotlib的boxplot方法进行绘制。

四、自定义boxplot的样式

在实际项目中,我们可能需要对boxplot进行更改,比如修改线条颜色、盒子的填充颜色等。以下为一些常用的自定义boxplot样式设置:

  • width:盒子的宽度
  • whisker_width:连接盒子和离散点的线条的线宽
  • whisker_length:连接盒子和离散点的线条的长度
  • boxprops:盒子的属性设置,如填充颜色、边框颜色等
  • medianprops:中位数线的属性设置,如线宽、颜色等

示例代码:

import matplotlib.pyplot as plt
import numpy as np

# 载入数据
np.random.seed(10)
data1 = np.random.normal(10, 5, 200)
data2 = np.random.normal(20, 5, 200)
data3 = np.random.normal(30, 5, 200)
data4 = np.random.normal(40, 5, 200)

# 绘制boxplot
fig, ax = plt.subplots()
ax.boxplot([data1, data2, data3, data4], 
           notch=False, 
           sym='+', 
           vert=True, 
           whis=1.5,
           widths=0.6,
           boxprops={'color':'black', 'facecolor':'#9999ff'},
           medianprops={'color':'red', 'linewidth':2},
           whiskerprops={'linewidth':2},
           capprops={'linewidth':2})
plt.show()

在本示例中,我们绘制了4组数据的boxplot,并对这些boxplot进行了自定义样式设置,包括颜色、线条宽度、填充等。

五、使用pandas进行boxplot绘制

Pandas也提供了 boxplot 方法,它使用了 matplotlib 库的 boxplot 绘制块状图。使用 Pandas 的 boxplot 方法之前需要将数据转化为 DataFrame 类型。

示例代码:

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

# 转换数据为 DataFrame
data = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])

# 绘制 boxplot
data.plot.box(whis=1.5) 

# 显示
plt.show()

在本示例中,我们随机生成了一组数据,并将其转换为 DataFrame 类型,然后使用了 Pandas 的 boxplot 方法进行绘制。

六、结语

本文对于python中的boxplot的使用进行了多个方面的介绍,从基本概念、seaborn的使用、matplotlib的使用、自定义样式以及pandas的使用等方面展示了boxplot的使用。希望文章能够对大家进行一定的帮助。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平