开发者学堂课程【Python 常用数据科学库:盒图绘制】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/546/detail/7502
盒图绘制
在画图当中,经常用到的一个图叫盒图。如图所示
在图中带了几个指标, Q1 Q3 和中间一个指标,也就是说在盒图中,关注点和其他图不太一样。现在不关注于平均值或众数,最关心的就是 Q1,Q3 和中位数在哪里,也就是说 Q1 从左边最开始到中位数。左半部分就是 Q1,右半部分就是 Q3。 IQR 就相当于中间的一个间隔,在此处还可以算 Q1 和 Q3 之间的差异,就可以算出 Q1减1.5倍的 IQR,就表示离群点。如果一个点小于 Q1 减1.5倍的 IQR2 或大于 Q3+1.5倍的 IQR,那么就说当前这个点就是一个离群点。在画图中可以将离群点都画出来。有的点比较小,也算离群点,有的点比较大,也算作为离群点。因为他和 IQ 而中间的间隔进行了比较,所以就先引出 Q1中位数和 Q3以及2边的间隔点。两边的间隔点用竖线表示出来就表示大于小于这个点的点都不行,都是离群点。以上就是一个基本盒图,关键在于如何去画这样的一个盒图。方法如下:
先把1系列库导入:
%matplotlib inline
Import matplotlib.pyplot as plt
Import numpy as np
以上就是所需要的两个库。
现在可以来造一些数据:
Tang_data=[np.random.normal(0,std,100)for std in range(1,4)]
接下来构造表格:
Fig=plt.figure(figsize=(8,6))
里面可以传入当前画图的区域大小,可以指定为8,6。
然后画出这个图就可以了。想画盒图核心点就是 Box plot。传入两个参数,第一个参数就是数据,第2个参数就是 notch。
Plt.boxplot(tang_data,notch=False,sym+’s’,vert=True)
代码如下:
%matplotlib inline
Import matplotlib.pyplot as plt
Import numpy as np
Tang_data=[np.random.normal(0,std,100)for std in range(1,4)]
Fig=plt.figure(figsize=(8,6))
Plt.boxplot(tang_data,notch=False,sym+’s’,vert=True)
运行以上代码之后画出以下盒图
继续对X轴和Y轴进行写全:
PLT.XTICKS(for y in range(len(tang_data)))],[‘x1’,’x2’,’x3’]
相当于把X轴上的123改为了X1 X2 X3。
再写入X label:
Plt.xlabel(‘x’)
再写入盒图的名字
Plt.title(‘box plot’)
全部代码如下:
%matplotlib inline
Import matplotlib.pyplot as plt
Import numpy as np
Tang_data=[np.random.normal(0,std,100)for std in range(1,4)]
Fig=plt.figure(figsize=(8,6))
Plt.boxplot(tang_data,notch=False,sym+’s’,vert=True)
PLT.XTICKS(for y in range(len(tang_data)))],[‘x1’,’x2’,’x3’]
Plt.xlabel(‘x’)
Plt.title(‘box plot’)
执行以上代码之后发现出现错误,系统提示语法错误,进行更改如下:
%matplotlib inline
Import matplotlib.pyplot as plt
Import numpy as np
Tang_data=[np.random.normal(0,std,100)for std in range(1,4)]
Fig=plt.figure(figsize=(8,6))
Plt.boxplot(tang_data,notch=False,sym+’s’,vert=True)
PLT.XTICKS(y+1 for y in range(len(tang_data))],[‘x1’,’x2’,’x3’]
Plt.xlabel(‘x’)
Plt.title(‘box plot’)
运行以上代码之后画出盒图,X 轴的坐标改为了 X1 X2 X3。也就是刚才指定的第1盒图第2盒图第3盒图。因为该盒图都是随机构造的,所以每次执行都是不一样的。离群点用方框来表示,以上就是用代码画的最基本的一个盒图。