python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python箱型图

Python matplotlib实战之箱型图绘制

作者:databook

箱型图(Box Plot),也称为盒须图或盒式图,是一种用作显示一组数据分布情况的统计图,因型状如箱子而得名,本文主要为大家介绍了如何使用Matplotlib绘制箱型图,需要的小伙伴可以参考下

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

它能显示出一组数据的最大值、最小值、中位数及上下四分位数。

箱子的顶端和底端,分别代表上下四分位数。

箱子中间的是中位数线,它将箱子一分为二。从箱子延伸出去的线条展现出了上下四分位数以外的数据,由于这两根延伸出去的线像是胡须,因此箱形图也被称为盒须图。

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

1. 主要元素

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

2. 适用的场景

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

3. 不适用的场景

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

4. 分析实战

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

4.1. 数据来源

数据来自国家统计局公开的历年数据,整理好的文件从下面的地址下载: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年来,第一产业的增加值明显低于其他两个产业。

第二第三产业的上下限的值相差比较大,说明增长或者下降比较明显(看了数据,是增长明显)。

第一产业的中位数(红色的横线)偏下半部分,说明多数的年份增加值比较低

第二产业的中位数(红色的横线)偏上半部分,说明多数的年份增加值比较高

到此这篇关于Python matplotlib实战之箱型图绘制的文章就介绍到这了,更多相关Python箱型图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文