箱型图(Box Plot),也称为盒须图或盒式图,1977年由美国著名统计学家约翰·图基(John Tukey)发明。
是一种用作显示一组数据分布情况的统计图,因型状如箱子而得名。

它能显示出一组数据的最大值、最小值、中位数及上下四分位数。
箱子的顶端和底端,分别代表上下四分位数。
箱子中间的是中位数线,它将箱子一分为二。从箱子延伸出去的线条展现出了上下四分位数以外的数据,由于这两根延伸出去的线像是胡须,因此箱形图也被称为盒须图。

箱形图最大的优势是,它以一种简单的方式,概括出一个或多个数值变量的分布,同时又不会占据太多空间。

1. 主要元素

它主要由以下五个元素组成:

  1. 最大值:表示数据的最大值,排除了异常值后的上限。
  2. 上四分位线:数据的上四分位数,将数据分为四等份,处于上边缘和中位数之间的数据。也称为第三四分位数。
  3. 中位数:数据的中位数,将数据分为两等份,处于上四分位数和下四分位数之间的数据。也称为第二四分位数。
  4. 下四分位线:数据的下四分位数,将数据分为四等份,处于中位数和下边缘之间的数据。也称为第一四分位数。
  5. 最小值:表示数据的最小值,排除了异常值后的下限。

2. 适用的场景

箱型图适用于以下分析场景:

  • 数据分布比较:比较不同组数据的分布情况。通过将多个箱型图放在一起,可以直观地比较它们的中位数、四分位数和离群值等信息,从而了解它们之间的差异。
  • 离群值检测:检测数据中的离群值。离群值是与其他数据点相比明显偏离的数据点,它们可能是数据收集或记录过程中的异常或错误。箱型图中的离群点可以帮助识别这些异常值。
  • 数据中心趋势和离散程度:通过中位数和四分位距(上四分位数与下四分位数之差)展示了数据的中心趋势和离散程度。中位数提供了数据的中心位置,四分位距提供了数据的离散程度。
  • 数据分布形状:提供关于数据分布形状的一些信息。例如,如果箱型图的上下边缘和中位数都接近,箱型图可能显示出对称的分布。如果箱型图的上边缘比下边缘长,中位数偏向下边缘,可能显示出右偏分布。

3. 不适用的场景

箱型图不适用于以下分析场景:

  • 数据样本过小:当数据样本过小时,箱型图可能无法提供足够的信息来准确描述数据的分布情况。
  • 数据分布复杂:当数据分布非常复杂或包含多个峰值时,箱型图可能无法完全捕捉到数据的特征。
  • 数据缺失:如果数据中存在大量缺失值,箱型图可能无法提供准确的分布信息。

4. 分析实战

本次通过箱型图分析我国三大产业对GDP的贡献情况。

4.1. 数据来源

数据来自国家统计局公开的历年数据,整理好的文件从下面的地址下载:
https://databook.top/nation/A02

使用的是其中的 A0201.csv 文件(国内生产总值)

fp = "d:/share/data/A0201.csv"

df = pd.read_csv(fp)
df

4.2. 数据清理

过滤出三大产业在2013年~2022年的增加值数据。

data = df[df["zb"].isin(["A020103",
"A020104",
"A020105"])].copy()
data = data[data["sj"] > 2012]
data

其中,A020103A020104A020105 分别是三大产业的指标编号。

4.3. 分析结果可视化

通过箱型图展示三大产业的增加值情况:

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 1, 1]) graph = ax.boxplot(
[
data[data["zb"] == "A020103"].loc[:, "value"],
data[data["zb"] == "A020104"].loc[:, "value"],
data[data["zb"] == "A020105"].loc[:, "value"],
],
vert=True,
patch_artist=True,
labels=["第一产业", "第二产业", "第三产业"]
)
ax.set_title("2013~2022 三大产业对GDP增加值(亿元)") colors = ['pink', 'lightblue', 'lightgreen']
for patch, color in zip(graph['boxes'], colors):
patch.set_facecolor(color) plt.show()

从图中可以看出,近10年来,第一产业的增加值明显低于其他两个产业。
第二第三产业的上下限的值相差比较大,说明增长或者下降比较明显(看了数据,是增长明显)。
第一产业的中位数(红色的横线)偏下半部分,说明多数的年份增加值比较低
第二产业的中位数(红色的横线)偏上半部分,说明多数的年份增加值比较高

【matplotlib 实战】--箱型图的更多相关文章

  1. 06. Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图

    1.基本图表绘制 plt.plot() 图表类别:线形图.柱状图.密度图,以横纵坐标两个维度为主同时可延展出多种其他图表样式 plt.plot(kind='line', ax=None, figsiz ...

  2. 使用matplotlib 制图(柱状图、箱型图)

    柱状图: import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('D:\\myfiles\\study\\pyt ...

  3. matplotlib柱状图、面积图、直方图、散点图、极坐标图、箱型图

    一.柱状图 1.通过obj.plot() 柱状图用bar表示,可通过obj.plot(kind='bar')或者obj.plot.bar()生成:在柱状图中添加参数stacked=True,会形成堆叠 ...

  4. Python图表数据可视化Seaborn:2. 分类数据可视化-分类散点图|分布图(箱型图|小提琴图|LV图表)|统计图(柱状图|折线图)

    1. 分类数据可视化 - 分类散点图 stripplot( ) / swarmplot( ) sns.stripplot(x="day",y="total_bill&qu ...

  5. python箱型图

    #-*- coding: utf-8 -*- import pandas as pd catering_sale = '../data/catering_sale.xls' #餐饮数据 data = ...

  6. 人工智能_机器学习——pandas - 箱型图

    箱型图对数据的展示也是非常清晰的,这是箱型图的一些代码 #导报 机器学习三剑客 import numpy as np import pandas as pd from matplotlib impor ...

  7. 使用seaborn制图(箱型图)

    import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 设置风格, ...

  8. Python_箱型图绘制与特征值获取

    它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较 如何利用Python绘制箱型图 需要的import的包 import matplotlib.pyplot as plt from m ...

  9. seaborn学习笔记(四):箱型图、小提琴图

    html { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100% } body { ...

  10. R语言-箱型图&热力图

    1.箱型图 boxplot()函数 > metals<-read.csv("metals.csv",header=TRUE) #读取文件和列名 > boxplot ...

随机推荐

  1. C语言基础--字符串

    文章目录 前言 一.数组 1.一维数组的创建 2.数组的索引 3.数组的调用 3.1 单个输出 3.2多个输出 二.字符串的创建 1.字符串的创建 2.字符串的输出 三.总结 前言 C语言中,有整型. ...

  2. 【pandas小技巧】--缺失值的列

    在实际应用中,数据集中经常会存在缺失值,也就是某些数据项的值并未填充或者填充不完整.缺失值的存在可能会对后续的数据分析和建模产生影响,因此需要进行处理. pandas提供了多种方法来处理缺失值,例如删 ...

  3. 集训后的一些wp

    新生赛后 0x01 2048(jk出发) 修改跳转条件为nop,随便动一下直接打印flag.这个场景我幻想过很久了,一直没做到,这次参考wp做出来了知道怎么做了.学到! 0x02 four(dsact ...

  4. Three.js中实现碰撞检测

    1. 引言 碰撞检测是三维场景中常见的需求,Three.js是常用的前端三维JavaScript库,本文就如何在Three.js中进行碰撞检测进行记述 主要使用到的方法有: 射线法Raycaster ...

  5. 20款VS Code实用插件推荐

    前言 VS Code是一个轻量级但功能强大的源代码编辑器,轻量级指的是下载下来的VS Code其实就是一个简单的编辑器,强大指的是支持多种语言的环境插件拓展,也正是因为这种支持插件式安装环境开发让VS ...

  6. Go 如何正确关闭通道

    序言 Go 在通道这一块,没有内置函数判断通道是否已经关闭,也没有可以直接获取当前通道数量的方法.所以对于通道,Go 显示的不是那么优雅.另外,如果对通道进行了错误的使用,将会直接引发系统 panic ...

  7. Iphone常用工具

    iFunBox itools 百度助手 崩溃日志的路径 /var/mobile/Library/Logs/CrashReporter

  8. HDU 1171 0-1背包

    最近感觉DP已经完全忘了..各种爆炸,打算好好复习一发,0-1背包开始 Big Event in HDU Problem Description Nowadays, we all know that ...

  9. KRPano动态热点专用素材图50多个,加动态热点使用方法

    KRPano动态热点专用素材是一种特定形式的序列图,该序列图要求帧的水平和垂直的具体位置必须准确,否则图的动作将会出现错乱,KRPano不支持动态图.目前网上比较匮乏动态热点素材,在此亲手整理制作了5 ...

  10. 【krpano】KRPano自动缩略图分组插件

    该插件可以展示场景缩略图,并支持场景分组. 下载地址:http://pan.baidu.com/s/1dFj7v0l 使用说明: 插件共有两个文件,auto_thumbs.xml和tooltip.xm ...