【matplotlib 实战】--堆叠柱状图

这篇具有很好参考价值的文章主要介绍了【matplotlib 实战】--堆叠柱状图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

堆叠柱状图,是一种用来分解整体、比较各部分的图。
与柱状图类似,堆叠柱状图常被用于比较不同类别的数值。而且,它的每一类数值内部,又被划分为多个子类别,这些子类别一般用不同的颜色来指代。

柱状图帮助我们观察“总量”,堆叠柱状图则可以同时反映“总量”与“结构”。
也就是说,堆叠柱状图不仅可以反映总量是多少?还能反映出它是由哪些部分构成的?
进而,我们还可以探究哪一部分比例最大,以及每一部分的变动情况,等等。

1. 主要元素

堆叠柱状图是常用于比较多个类别或组之间的数据。
它通过将多个柱状图堆叠在一起,展示每个类别或组的总量以及各个部分的相对比例。

它的主要构成元素包括:

  1. 横轴:表示数据的主分类。
  2. 纵轴:每个子分类的比例关系。
  3. 堆叠的矩形:每个柱状图由多个堆叠部分组成,每个堆叠部分表示该类别或组中的一个部分或子类别。
  4. 图例:每个堆叠部分代表的意义。

【matplotlib 实战】--堆叠柱状图

2. 适用的场景

堆叠柱状图适用于以下的分析场景:

  • 比较多个类别或组的总量以及各个部分的相对比例,例如不同产品的销售总额以及各个渠道的销售额占比。
  • 可视化多个类别或组的趋势变化,例如不同地区的人口数量随时间的变化趋势。
  • 对比多个类别或组之间的差异,例如不同年份的营业额对比。

3. 不适用的场景

堆叠柱状图不适用以下的分析场景:

  • 数据具有负值或包含缺失值的情况。堆叠柱状图只适用于展示正值数据,不适合包含负值或缺失值的数据。
  • 需要比较多个类别的绝对数值大小。堆叠柱状图主要关注各个部分的相对比例,而不是绝对数值大小的比较。

4. 分析实战

本次用堆叠柱状图统计最近几年全国居民消耗的主要几类粮食的情况。

4.1. 数据来源

数据来自国家统计局公开的人民生活数据,可从下面的网址下载:
https://databook.top/nation/A0A

使用的是其中 A0A0A.csv文件(全国居民主要食品消费量)

fp = "d:/share/A0A0A.csv"

df = pd.read_csv(fp)
df

【matplotlib 实战】--堆叠柱状图

4.2. 数据清理

本次绘制堆叠柱状图,时间上选择最近几年的数据,由于2022年的数据缺失,选择** 2013年~2021年的数据。
内容上每个年度选择
5类**常见的食物:

  1. 居民人均蔬菜及食用菌消费量(千克)
  2. 居民人均肉类消费量(千克)
  3. 居民人均禽类消费量(千克)
  4. 居民人均水产品消费量(千克)
  5. 居民人均蛋类消费量(千克)
#> A0A0A03 居民人均蔬菜及食用菌消费量(千克)
#> A0A0A04 居民人均肉类消费量(千克)
#> A0A0A05 居民人均禽类消费量(千克)
#> A0A0A06 居民人均水产品消费量(千克)
#> A0A0A07 居民人均蛋类消费量(千克)
data = df[(df["sj"] >= 2013) & 
        (df["sj"] <= 2021) & 
        (df["zb"].isin(["A0A0A03", 
                        "A0A0A04",
                        "A0A0A05",
                        "A0A0A06",
                        "A0A0A07"]))].copy()

data.head(10)

【matplotlib 实战】--堆叠柱状图

一共45条数据,5个分类,每个分类有9个年度的数据。

4.3. 分析结果可视化

data = data.sort_values("sj")
data[data["zb"] == "A0A0A03"]["value"].tolist()


with plt.style.context("seaborn-v0_8"):
    fig = plt.figure()
    ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

    years = data["sjCN"].drop_duplicates(keep="first").tolist()
    bar_data = {
        "蔬菜及菌类(千克)": data[data["zb"] == "A0A0A03"]["value"].tolist(),
        "肉类(千克)": data[data["zb"] == "A0A0A04"]["value"].tolist(),
        "禽类(千克)": data[data["zb"] == "A0A0A05"]["value"].tolist(),
        "水产品(千克)": data[data["zb"] == "A0A0A06"]["value"].tolist(),
        "蛋类(千克)": data[data["zb"] == "A0A0A07"]["value"].tolist(),
    }

    bottom = np.zeros(len(years))
    for key, vals in bar_data.items():
        ax.bar(years, vals, label=key, bottom=bottom)
        bottom += vals

    ax.set_title("全国居民主要粮食消耗情况")
    ax.legend(loc="upper left", ncol=3)

【matplotlib 实战】--堆叠柱状图

看图中的分析结果,和事先预想的差不多,蔬菜肉类是我们平时主要的粮食来源。
图中还可以看出,在3年疫情期间,粮食消耗逐步增多,可能是大家认为吃的好才能增强抵抗力 :)文章来源地址https://www.toymoban.com/news/detail-711643.html

到了这里,关于【matplotlib 实战】--堆叠柱状图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单列的堆叠柱状图

    目的 MSingleColumnStackBarChart 类被设计用于创建只有单列的堆叠柱状图,用于血糖数据的统计。以下是封装这个类的目的的详细描述: 抽象复杂性: 通过创建 MSingleColumnStackBarChart 类,你将复杂的MPAndroidChart库的使用和配置封装在一个独立的类中。这有助于降低代码的复杂性,使

    2024年01月17日
    浏览(33)
  • Python绘制柱状图堆叠图

    本文详细介绍如何使用 Matplotlib 绘制柱状堆叠图 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 开始绘制柱状堆叠图之前,我们需要生成实验数据。在本案例中,我们可以使用 NumPy 库生成两个数组 y1 和 y2 来分别表示产品 A 和 B 在五个不同城

    2024年02月07日
    浏览(44)
  • Python——柱状图(条形图、堆叠图)

    目录 1 基本函数 2 竖条形图 3 横条形图 4 并列条形图 5 添加标签 6 堆叠柱形图 x:数据标签(横坐标); height:个数或一个数组,条形的高度; [width]:可选参数,一个数或一个数组,条形的宽度,默认为 0.8

    2024年02月13日
    浏览(41)
  • 数据可视化高级技术Echarts(堆叠柱状图)

    目录 一.如何实现 二.代码展示 1.stack名称相同(直接堆叠) 2. stack名称不相同(相同的堆叠,不同的新生成一列) 数据堆叠,同个类目轴上系列配置相同的  stack  值可以堆叠放置。即在series中将设置stack即可。其他设置与普通柱状图相同, 参考文章: 数据可视化高级技术

    2024年04月10日
    浏览(47)
  • Pyecharts教程(七):使用pyecharts创建堆叠柱状图的示例

    作者:安静到无声 个人主页 在数据可视化中,柱状图是一种常见的图表类型,它可以清晰地展示各类别之间的比较关系。然而,如果我们想要在同一张图表中展示多个类别的数据,例如每个类别的两个子类别,我们就需要使用到堆叠柱状图。今天,我们就来学习如何使用p

    2024年02月11日
    浏览(33)
  • Python面积图的绘制(堆叠区域图)(Matplotlib篇-15)

    Python面积图的绘制(堆叠区域图)(Matplotlib篇-15)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹

    2024年01月17日
    浏览(40)
  • 【数据分析之道-Matplotlib(五)】Matplotlib柱状图

    ✍ 作者简介: i阿极 ,CSDN Python领域新星创作者, 专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》 ,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。 ✍ 订阅后,可以阅读《数据分析之道》中全部文章内容

    2024年02月07日
    浏览(36)
  • Matplotlib绘制柱状图

    柱状图是一种用矩形柱来表示数据分类的图表,柱状图可以垂直绘制,也可以水平绘制,它的高度与其所表示的数值成正比关系。柱状图显示了不同类别之间的比较关系,图表的水平轴 X 指定被比较的类别,垂直轴 Y 则表示具体的类别值。 绘制柱状图的命令为: bar() 1.简单柱

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包