箱线图1
从下到上五条线分别表示最小值、下四分位数、中位数、上四分位数和最大值.
你可以通过它很快的发现数据批中的异常值,判断数据批的偏态和尾重,比较几批数据的形状.
顾客到餐厅的距离数据
通过这些数据绘制一张图,用来反映顾客的分布和距离的中位数.
14, 6, 3, 2, 4, 15, 11, 8, 1, 7, 2, 1, 3, 4, 10, 22, 20
?
显然这个跟时间无关或者并没有想要某写变量之间的关系,那么线图是不合适的.
条形图是用来将事物归类的,看每一类数据的情况,也不是我们想要.
而饼图是看个部分的占比.
茎叶图可以帮助了解分布情况,但是无法很好的处理中位数距离和散布情况(我说过上节中配的图并不是正经的茎叶图,显然画它有些麻烦,数据下的那个表格形状才是真正的茎叶图,绘制起来并不复杂).茎叶图可以发现中位数的大概位置在哪里,并不能直接看出来.
关注中位数和散布情况时,我们可以选择盒须图(箱线图,箱体图).
绘制箱线图的过程
按照四分位划分,它可以显示出数据中位数在哪
step1.将数据进行排序
1, 1, 2, 2, 3, 3, 4, 4, 6, 7, 8, 10, 11, 14, 15, 20, 22
median: 6
中位数找到之后,数据被它分为两部分,再在这两部分中分别找到它们对应的中位数
这样就被三个数分为四个区间(从左至右,成为第a个n分区级)
step2.寻找四分位数
(2+3)/2=2.5 madian:6 (11+14)/2=12.5
这里计算采用去掉median的方法划分,你也可以把它分别包括在两个区域计算下一次的中位数
利用pyhton
绘制箱线图
先看一下参数 matplotlib官网介绍
plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=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)
为了让你觉得代码不那么繁琐,这里是一个简单的实现
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
data = np.array([14, 6, 3, 2, 4, 15, 11, 8, 1, 7, 2, 1, 3, 4, 10, 22, 20])
df = pd.DataFrame({'distance':data})
df.boxplot(
patch_artist=True,
showmeans=True,
)
plt.show()
如果你并不满足上面代码的丰富,可以在下面的代码中发现一点新的东西
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axisartist.axislines import SubplotZero
import pandas as pd
data = np.array([14, 6, 3, 2, 4, 15, 11, 8, 1, 7, 2, 1, 3, 4, 10, 22, 20])
df = pd.DataFrame({'distance':data})
yticks = np.arange(0, 23, 2)
# 设置支持中文
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
plt.rcParams['axes.unicode_minus']=False
fig = plt.figure(figsize=(7, 5), dpi=120, facecolor='#FF9966', edgecolor='c')
ax1 = SubplotZero(fig, 1, 1, 1, axisbg='#FF9966')
fig.add_subplot(ax1)
# ax1.grid(True, color='k', linestyle='-.')
ax1.axis['right', 'top'].set_visible(False)
ax1.set_yticks(yticks)
ax1.set_ylim(-1, 24)
df.boxplot(patch_artist=True, showmeans=True)
plt.show()
这里并不重点说明程序的内容,应该更多的认识图表,利用统计学知识了解你的数据,程序的学习将会放在
目录
中Machine Learning
,你会发现那里并不会仅仅放一些算法的内容,也有基础的工具(python)使用.
博主个人能力有限,错误在所难免.
如发现错误请不要吝啬,发邮件给博主更正内容,在此提前鸣谢.
Email: JentChang@163.com (来信请注明文章标题,如果附带链接就更方便了)
你也可以在下方的留言板留下你宝贵的意见.