对于数据分析或统计学习,可视化分析是一种非常重要的方式。而在可视化分析中,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的使用。希望文章能够对大家进行一定的帮助。