Python Matplotlib绘制箱型图(箱线图)boxplot的方法详解
作者:黄饱饱_bao
相较散点图和折线图,柱状图、饼图、箱线图(箱型图)是另外 3 种数据分析常用的图形,主要用于分析数据内部的分布状态或分散状态。其中箱线图(箱型图)的主要作用是发现数据内部整体的分布分散情况,包括上下限、各分位数、异常值。
与之前的可视化博客内容不同的是,这里我们需要先介绍一下箱线图上各部位的含义:
Matplotlib 中绘制箱线图的函数为 boxplot () ,有两种语法,如下:
常用语法:
matplotlib.pyplot.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_xticks=True, autorange=False, zorder=None, hold=None, data=None)
常用参数及说明:
参数 | 说明 | 参数 | 说明 |
---|---|---|---|
x | 指定要绘制箱线图的数据; | showcaps | 是否显示箱线图顶端和末端的两条线 |
notch | 是否是凹口的形式展现箱线图 | showbox | 是否显示箱线图的箱体 |
sym | 指定异常点的形状 | showfliers | 是否显示异常值 |
vert | 是否需要将箱线图垂直摆放 | boxprops | 设置箱体的属性,如边框色,填充色等 |
whis | 指定上下须与上下四分位的距离 | labels | 为箱线图添加标签 |
positions | 指定箱线图的位置 | filerprops | 设置异常值的属性 |
widths | 指定箱线图的宽度 | medianprops | 设置中位数的属性 |
patch_artist | 是否填充箱体的颜色; | meanprops | 设置均值的属性 |
meanline | 是否用线的形式表示均值 | capprops | 设置箱线图顶端和末端线条的属性 |
showmeans | 是否显示均值 | whiskerprops | 设置须的属性 |
其他参数请参考文档:https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.boxplot
只接收DataFrame的 boxplot () 语法:
DataFrame.boxplot(column=None, by=None, ax=None,showmeans=False, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, ...)
参数 | 接收值 | 说明 | 默认值 |
---|---|---|---|
column | list | 指定要进行箱型图分析的列 | 全部列 |
showmeans | bool | 是否显示均值 | FALSE |
notch | bool | 是否是凹口的形式展现箱线图 | FALSE |
patch_artist | bool | 是否填充箱体的颜色,若为true,则默认蓝色 | FALSE |
grid | bool | 箱型图网格线是否显示 | TRUE |
vert | bool | 竖立箱型图(True)/水平箱型图(False) | TRUE |
sym | string | 指定异常点的形状 | 0 |
基本用法
import pandas as pd import matplotlib.pyplot as plt #读取数据 datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx' data = pd.read_excel(datafile) box_1, box_2, box_3, box_4 = data['收入_Jay'], data['收入_JJ'], data['收入_Jolin'], data['收入_Hannah'] plt.figure(figsize=(10,5))#设置画布的尺寸 plt.title('Examples of boxplot',fontsize=20)#标题,并设定字号大小 labels = 'Jay','JJ','Jolin','Hannah'#图例 plt.boxplot([box_1, box_2, box_3, box_4], labels = labels)#grid=False:代表不显示背景中的网格线 # data.boxplot()#画箱型图的另一种方法,参数较少,而且只接受dataframe,不常用 plt.show()#显示图像
水平箱线图,显示均值
import pandas as pd import matplotlib.pyplot as plt #读取数据 datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx' data = pd.read_excel(datafile) box_1, box_2, box_3, box_4 = data['收入_Jay'], data['收入_JJ'], data['收入_Jolin'], data['收入_Hannah'] plt.figure(figsize=(10,5))#设置画布的尺寸 plt.title('Examples of boxplot',fontsize=20)#标题,并设定字号大小 labels = 'Jay','JJ','Jolin','Hannah'#图例 #vert=False:水平箱线图;showmeans=True:显示均值 plt.boxplot([box_1, box_2, box_3, box_4], labels = labels, vert=False,showmeans=True ) plt.show()#显示图像
改变箱线图的形状
箱体的形状notch、异常值的形状sym
import pandas as pd import matplotlib.pyplot as plt #读取数据 datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx' data = pd.read_excel(datafile) box_1, box_2, box_3, box_4 = data['收入_Jay'], data['收入_JJ'], data['收入_Jolin'], data['收入_Hannah'] plt.figure(figsize=(10,5))#设置画布的尺寸 plt.title('Examples of boxplot',fontsize=20)#标题,并设定字号大小 #notch:是否是凹口的形式展现箱线图;sym:异常点的形状; plt.boxplot([box_1, box_2, box_3, box_4],notch = True,sym = '*') plt.show()#显示图像
改变箱线图的颜色
箱体边框的颜色、箱体填充色
箱体色的设置需配合 patch_artist = True 使用
import pandas as pd import matplotlib.pyplot as plt #读取数据 datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx' data = pd.read_excel(datafile) box_1, box_2, box_3, box_4 = data['收入_Jay'], data['收入_JJ'], data['收入_Jolin'], data['收入_Hannah'] plt.figure(figsize=(10,5))#设置画布的尺寸 plt.title('Examples of boxplot',fontsize=20)#标题,并设定字号大小 #boxprops:color箱体边框色,facecolor箱体填充色; plt.boxplot([box_1, box_2, box_3, box_4],patch_artist = True, boxprops = {'color':'orangered','facecolor':'pink'}) plt.show()#显示图像
箱型图的花哨用法并不常用,因此不多加赘述了。
以上就是Python Matplotlib绘制箱型图(箱线图)boxplot的方法详解的详细内容,更多关于Python Matplotlib箱型图的资料请关注脚本之家其它相关文章!