Python数据可视化 箱线图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据可视化 箱线图相关的知识,希望对你有一定的参考价值。

Python数据可视化:箱线图一、箱线图概念 箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图

参考技术A Python数据可视化:箱线图
一、箱线图概念
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。
计算过程:

(1)计算上四分位数(Q3),中位数,下四分位数(Q1)
(2)计算上四分位数和下四分位数之间的差值,即四分位数差(IQR,interquartile range)Q3-Q1
(3)绘制箱线图的上下范围,上限为上四分位数,下限为下四分位数。在箱子内部中位数的位置绘制横线。
(4)大于上四分位数1.5倍四分位数差的值,或者小于下四分位数1.5倍四分位数差的值,划为异常值(outliers)。
(5)异常值之外,最靠近上边缘和下边缘的两个值处,画横线,作为箱线图的触须。
(6)极端异常值,即超出四分位数差3倍距离的异常值,用实心点表示;较为温和的异常值,即处于1.5倍-3倍四分位数差之间的异常值,用空心点表示。
(7)为箱线图添加名称,数轴等

二、四分位数的计算

分位数根据其将数列等分的形式不同可以分为中位数,四分位数,十分位数、百分位数等等。四分位数作为分位数的一种形式,在统计中有着十分重要的意义和作用,而大多数的统计学原理教材只介绍其基本含义,对其具体计算,尤其是由组距数列计算都不作介绍,成为统计学原理教材中的空白。那么,如何根据数列计算四分位数呢?一般来讲,视资料是否分组而定。

1、根据未分组的资料计算四分位数

第一步:确定四分位数的位置

四分位数是将数列等分成四个部分的数,一个数列有三个四分位数,设下分位数、中分位数和上分位式中n表示资料的项数

第二步:根据第一步所确定的四分位数的位置,确定其相应的四分位数。
例1:某车间某月份的工人生产某产品的数量分别为13、13.5、13.8、13.9、14、14.6、14.8、15、15.2、15.4、15.7公斤,则三个四分位数的位置分别为:

即变量数列中的第三个、第六个、第九个工人的某种产品产量分别为下四分位数、中位 数和上四分位数。即:
Q1 =13.8公斤、Q2=14.6公斤、Q3=15.2公斤
上例中(n+1)恰好为4的倍数,所以确定四分数较简单,如果(n+1)不为4的整数倍数,按上述分式计算出来的四分位数位置就带有小数,这时,有关的四分位数就应该是与该小数相邻的两个整数位置上的标志值的平均数,权数的大小取决于两个整数位置距离的远近,距离越近,权数越大,距离越远,权数越小,权数之和等于1。
例2:某车间某月份的工人生产某产品的数量分别为13、13.5、13.8、13.9、14、14.6、14.8、15、15.2、15.4公斤,则三个四分位数的位置分别为:

即变量数列中的第2.75项、第5.5项、第8.25项工人的某种产品产量分别为下四分位 数、中位数和上四分位数。即:

在实际资料中,由于标志值序列中的相邻标志值往往是相同的,因而不一定要通过计算才能得到有关的四分位数。

2、由组距式数列确定四分位数

第一步,向上或向下累计次数.
第二步,根据累计次数确定四分位数的位置.
(1)、当采用向上累计次数的资料确定四分位数时,四分位数位置的公式是:

(2)、当采用向下累计次数的资料确定四分位数时,四分位数位置的公式是:

第三步,根据四分位数的位置算出各四分位数.
(1)、当累计次数是向上累计时,按下限公式计算各四分位数.

(2)、当累计次数是向下累计时,按上限公式计算各四分位数.

例3:某企业职工按月工资的分组资料如下:

根据上述资料确定某企业职工的月工资的三个四分位数如下:
(1)、采用向上累计职工人数的资料得月工资四分位数的位置为:
(2)、采用向下累计职工人数的资料得月工资四分位数的位置为:

3、异常值

异常值:限制线以外的数据全部为异常值
三、画图

# Python
import plotly.plotly
import plotly.graph_objs as go

data = [
go.Box(
y=[0, 1, 1, 2, 3, 5, 8, 13, 21] # 9个数据
)
]
plotly.offline.plot(data) # 离线绘图

python可视化---箱线图boxplot()

函数功能:绘制箱线图。

调用签名:plt.boxplot(x)

x:绘制箱线图的输入数据

代码实现:

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

mpl.rcParams["font.sans-serif"] = ["FangSong"]
mpl.rcParams["axes.unicode_minus"] = False

x = np.random.randn(1000)

plt.boxplot(x)

plt.xticks([1], ["随机数生成器AlphaRM"])
plt.ylabel("随机数值")
plt.title("随机数生成器抗干扰能力的稳定性")

plt.grid(axis="y", ls=":", lw=1, color="gray", alpha=0.4)

plt.show()

以上是关于Python数据可视化 箱线图的主要内容,如果未能解决你的问题,请参考以下文章

可视化实验十二:利用Python绘制箱线图折线图

数据可视化实验:python数据可视化-柱状图,条形图,直方图,饼图,棒图,散点图,气泡图,雷达图,箱线图,折线图

python可视化---箱线图boxplot()

Python统计分析可视化库seaborn(相关性图,变量分布图,箱线图等等)

python可视化数据分析常用图大集合(收藏)

Python数据可视化教学(附源码,修改参数即可)