首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Matplotlib中分别对堆叠条形图进行排序

在Matplotlib中,可以使用bar函数绘制堆叠条形图。要对堆叠条形图进行排序,可以按照以下步骤进行操作:

  1. 导入必要的库和模块:
代码语言:txt
复制
import matplotlib.pyplot as plt
import numpy as np
  1. 创建数据集:
代码语言:txt
复制
categories = ['A', 'B', 'C', 'D', 'E']  # 类别
values1 = [10, 15, 20, 25, 30]  # 第一组数据
values2 = [5, 10, 15, 20, 25]  # 第二组数据
values3 = [2, 4, 6, 8, 10]  # 第三组数据
  1. 计算每个类别的总和:
代码语言:txt
复制
total_values = np.add(np.add(values1, values2), values3)
  1. 创建堆叠条形图:
代码语言:txt
复制
fig, ax = plt.subplots()

# 绘制第一组数据
ax.bar(categories, values1, label='Group 1')

# 绘制第二组数据
ax.bar(categories, values2, bottom=values1, label='Group 2')

# 绘制第三组数据
ax.bar(categories, values3, bottom=np.add(values1, values2), label='Group 3')

# 添加图例
ax.legend()

# 显示图形
plt.show()

这样就可以绘制出堆叠条形图。如果需要对堆叠条形图进行排序,可以按照以下步骤进行操作:

  1. 创建排序索引:
代码语言:txt
复制
sort_index = np.argsort(total_values)
  1. 根据排序索引重新排列数据集:
代码语言:txt
复制
sorted_categories = [categories[i] for i in sort_index]
sorted_values1 = [values1[i] for i in sort_index]
sorted_values2 = [values2[i] for i in sort_index]
sorted_values3 = [values3[i] for i in sort_index]
  1. 创建重新排序后的堆叠条形图:
代码语言:txt
复制
fig, ax = plt.subplots()

# 绘制第一组数据
ax.bar(sorted_categories, sorted_values1, label='Group 1')

# 绘制第二组数据
ax.bar(sorted_categories, sorted_values2, bottom=sorted_values1, label='Group 2')

# 绘制第三组数据
ax.bar(sorted_categories, sorted_values3, bottom=np.add(sorted_values1, sorted_values2), label='Group 3')

# 添加图例
ax.legend()

# 显示图形
plt.show()

通过以上步骤,就可以对堆叠条形图进行排序。在排序后的堆叠条形图中,类别将按照总和值的大小进行排序,从最小值到最大值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Matplotlib入门

Matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。用户熟悉了核心对象之后,就可以轻易的定制图像。...2.Matplotlib快速预览 matplotlib中,整个图像为一个Figure对象,Figure对象中可以包含一个或者多个Axes对象。...柱状图.png 4.3 绘制条形图plt.barh plt.barh为我们创建条形图。本质上条形图就是横向的柱形图,故两个的配置几乎完全相同。...散点图.png 4.7绘制堆叠图plt.stackplot 堆叠图常用于“部分相对整体”随时间的关系。堆叠图基本上类似于饼图,只是随时间而变化。...image.png 让柱形图按照y轴值的大小排序后画出,因为网站传回的数据已经排序好,只需要按x标签顺序画图即可。

2.1K31

图表(Chart & Graph)你真的用对了吗?

有以下几种图表类型,展示数据的组成: 饼状图 堆叠条形图 堆叠柱形图 面积图 瀑布图 3. 是否需要了解数据的分布? 分布图表能够帮助我们清晰的理解正常趋势、正常范围和异常值。...为了更好地了解每个图表以及如何使用它们,文中分别对每一种图表进行了概述。 1)柱状图 柱状图用于显示不同数据之间的对比,也可以显示随时间变化的数据对比。...2)条形图 条形图基本上是水平的柱形图,可以用于避免超过10个项目进行比较时产生杂乱。这种图表类型也可用于显示负数。 设计条形图的最佳做法: 图表中使用对比色,高亮特殊有意义的数据。...6)堆叠条形图 这种图表用于比较多个不同的数据集,并显示每个被比较的数据集的组成。 设计堆叠条形图的最佳做法: 最适用于说明部分和整体的关系。 使用对比色,会使对比更加清晰。...可以甘特图中结合地图和其它图表类型。 看完以上常用图表的介绍,你真的用对了图表吗?

2.3K10

Pandas数据可视化

; 每张图上不适合展示太多折线  面积图就是折线图的基础上,把折线下面的面积填充颜色 : 直方图  直方图看起来很像条形图, 直方图是一种特殊的条形图,它可以将数据分成均匀的间隔,并用条形图显示每个间隔中有多少行...绘图功能的封装,所以很多参数pandas 和 matplotlib都一样 reviews[reviews['price'] < 100].sample(100).plot.scatter(x='price...一:对数据<em>进行</em>采样 二:hexplot(蜂巢图) hexplot hexplot将数据点聚合为六边形,然后根据其内的值为这些六边形上色: 上图x轴坐标缺失,属于bug,可以通过调用<em>matplotlib</em>的...api添加x坐标: 该图中的数据可以和散点图中的数据<em>进行</em>比较,但是hexplot能展示的信息更多 从hexplot中,可以看到《葡萄酒杂志》(Wine Magazine)评论的葡萄酒瓶大多数是87.5分...<em>堆叠</em>图(Stacked plots) 展示两个变量,除了使用散点图,也可以使用<em>堆叠</em>图 <em>堆叠</em>图是将一个变量绘制<em>在</em>另一个变量顶部的图表 接下来通过<em>堆叠</em>图来展示最常见的五种葡萄酒  从结果中看出,最受欢迎的葡萄酒是

8510

一文掌握Pandas可视化图表

今天简单介绍一下Pandas可视化图表的一些操作,Pandas其实提供了一个绘图方法plot(),可以很方便的将Series和Dataframe类型数据直接进行数据可视化。 1....当然,使用新的引擎前需要先安装对应的库。...) 柱状图多子图 # 柱状图多子图 df.plot.bar(subplots=True, rot=0) 条形图 条形图和柱状图其实差不多,条形图就是柱状图的横向展示 # 条形图barh df.plot.barh...(figsize=(6,8)) 堆叠条形图 # 堆叠条形图 df.plot.barh(stacked=True) 直方图 直方图又称为质量分布图,主要用于描述数据不同区间内的分布情况,描述的数据量一般比较大...# 默认是堆叠 df.plot.area() 单个面积图 df.a.plot.area() 取消堆叠 # 取消堆叠 df.plot.area(stacked=False) 散点图 散点图就是将数据点展示直角坐标系上

8.1K50

教程 | 5种快速易用的Python Matplotlib数据可视化方法

项目的早期阶段,我们通常需要进行探索性数据分析来获得对数据的洞察。通过数据可视化可以让该过程变得更加清晰易懂,尤其是处理大规模、高维度数据集时。...本文中,我们介绍了最基本的 5 种数据可视化图表,展示了它们的优劣点后,我们还提供了绘制对应图表的 Matplotlib 代码。...当对类别数很少(<10)的分类数据进行可视化时,条形图是最有效的。...分组条形图 堆叠条形图非常适合于可视化不同变量的分类构成。在下面的堆叠条形图中,我们比较了工作日的服务器负载。...通过使用不同颜色的方块堆叠在同一条形图上,我们可以轻松查看并了解哪台服务器每天的工作效率最高,和同一服务器不同天数的负载大小。

2.4K60

5 种快速易用的 Python Matplotlib 数据可视化方法

项目的早期阶段,我们通常需要进行探索性数据分析来获得对数据的洞察。通过数据可视化可以让该过程变得更加清晰易懂,尤其是处理大规模、高维度数据集时。...本文中,我们介绍了最基本的 5 种数据可视化图表,展示了它们的优劣点后,我们还提供了绘制对应图表的 Matplotlib 代码。...当对类别数很少(<10)的分类数据进行可视化时,条形图是最有效的。...分组条形图 堆叠条形图非常适合于可视化不同变量的分类构成。在下面的堆叠条形图中,我们比较了工作日的服务器负载。...通过使用不同颜色的方块堆叠在同一条形图上,我们可以轻松查看并了解哪台服务器每天的工作效率最高,和同一服务器不同天数的负载大小。

1.9K40

『数据可视化』一文掌握Pandas可视化图表

除了绘图时定义图像大小外,我们还可以通过matplotlib的全局参数设置图像大小 plt.rcParams['figure.figsize'] = (10,5) 标题 通过参数title设置图表标题...绘图引擎 通过backend可以指定不同的绘图引擎,目前默认是matplotlib,还支持bokeh、plotly、Altair等等。当然,使用新的引擎前需要先安装对应的库。...条形图 条形图和柱状图其实差不多,条形图就是柱状图的横向展示 # 条形图barh df.plot.barh(figsize=(6,8)) ?...堆叠条形图 # 堆叠条形图 df.plot.barh(stacked=True) ? 直方图 直方图又称为质量分布图,主要用于描述数据不同区间内的分布情况,描述的数据量一般比较大。...取消堆叠 # 取消堆叠 df.plot.area(stacked=False) ?

7.8K40

5个快速而简单的数据可视化方法和Python代码

项目的早期阶段,你通常会进行探索性数据分析(EDA),以获得对数据的一些见解。创建可视化确实有助于使事情更清晰和更容易理解,特别是对于更大的、高维的数据集。...我们将看到三种不同类型的条形图:常规条形图、分组条形图堆叠条形图我们进行的过程中,请查看下图中的代码。 常规的条形图如下面的第一个图所示。...然后我们循环遍历每一组,对于每一组,我们x轴上画出每一个刻度的横杠,每一组也用颜色进行编码。 堆叠条形图对于可视化不同变量的分类构成非常有用。在下面的堆叠条形图中,我们比较了每天的服务器负载。...其代码遵循与分组条形图相同的样式。我们循环遍历每一组,但是这次我们旧的条形图上绘图,而不是它们旁边画新条形图。 ? 常规条形图 ? 分组条形图 ?...堆叠条形图 def barplot(x_data, y_data, error_data, x_label="", y_label="", title=""): _, ax = plt.subplots

2K10

原来使用 Pandas 绘制图表也这么惊艳

数据可视化是捕捉趋势和分享从数据中获得的见解的非常有效的方式,流行的可视化工具有很多,它们各具特色,但是今天的文章中,我们将学习使用 Pandas 进行绘图。...Pandas 的 plot() 方法 Pandas 附带了一些绘图功能,底层都是基于 Matplotlib 库的,也就是说,由 Pandas 库创建的任何绘图都是 Matplotlib 对象。...%matplotlib 内联魔法命令也被添加到代码中,以确保绘制的数字正确显示笔记本单元格中: import pandas as pd import numpy as np import matplotlib.pyplot...在下面的示例中,我们将根据每月平均股价创建一个条形图,来比较每个公司特定月份与其他公司的平均股价。首先,我们需要按月末重新采样数据,然后使用 mean() 方法计算每个月的平均股价。...: df_3Months.plot(kind='barh', figsize=(9,6)) Output: 我们还可以堆叠的垂直或水平条形图上绘制数据,这些条形图代表不同的组,结果条的高度显示了组的组合结果

4.5K50

数据可视化?不如用最经典的工具画最酷炫的图

能够进行可视化的工具有很多,比如 python 中的 matplotlib、pyecharts、plotly等等。...多个对象的相同类别对比,而且又是这些已经深(shen)入(wu)人(tong)心(ji)的厂子?太妙了,我们可以利用 logo 让图形更加夺目。 ?...有的时候用堆积条形图更合适。 PPT篇 1、堆叠球形图 ? PPT 难道不是用来画图的吗?让我们先看看上面这组数据,多层包含关系。...只需 PPT 中插入形状和文本框进行组合即可,至于尺寸嘛,可以通过精确计算后格式菜单中调整大小(老板,我的目测十分精确,信我),另外 SmartArt 中也有很多图形可以为我们提供制图灵感。 ?...第2种:按堆叠球形图的思路又何尝不可呢,加以箭头又体现了球体的膨胀过程。 ? 第3种:是的,不得不说箭头真的很好用,只要把它和常规条形图组合,效果就会变得不一样,既反映了时间变化的方向又体现了增长。

2.7K20

这些条形图的用法您都知道吗?

,有两点需要说明,一方面,ggplot2绘图过程中均采用图层思想,将多个图形进行叠加和设置;另一方面,图层思想是通过代码中的加号(+)表现出来的。...,默认为'stack',表示绘制堆叠条形图;如果指定为'dodge',表示绘制水平交错条形图;如果为'fill',表示绘制百分比堆叠条形图; ......如上图所示,使用grid.arrange函数将两张图组合在一个图框内,其中左图是使用geom_bar函数直接生成的原始图形,右图则是左图的基础上添加了三项功能,分别是条形图排序(代码中reorder...实际应用中,对于单离散变量和单数值变量的条形图,右图会更加受欢迎,因为它更加直观(借助于排序可以迅速地发现柱子的最高、最低及差异;借助于数值标签可以明确地得知各离散水平下的具体值;借助于参考线可以比较哪些水平值高于平均水平...然而,实际的企业环境中,这样的图形出现的频次并不是很高,因为绝对数量的堆叠条形图并不能够达到刺激效果。读者不妨使用下面介绍的百分比堆叠条形图

5.5K10

可视化技能之Matplotlib(上)|可视化系列01

Matplotlib是基础而非常强大的可视化库,Seaborn等好用的可视化库是在前者的基础上进行的封装。...Matplotlib擅长快速出简单的图、有丰富的接口进行精细化绘图、和Numpy结合做科学可视化及三维图配合默契、三维图。...折线图绘制示例 Matplotlib其实为作图提供了两套可视化接口,分别为: •plt.plot()系列•fig, ax = plt.subplots(); ax.plot() 系列 根据官网教程,分别对应...簇状柱形图 通过给bottom参数传一个数组,可以画堆叠柱状图:堆叠柱除了等值堆叠之外,还可以等比堆叠,思路就是将每个x对应的柱都做一下数值变换,把柱的高度约束[0,1],且堆叠之和为1,height...堆叠柱状图绘制 调节width参数使得柱和柱之间的宽度为0,并对数据进行统计画图,可以用ax.bar()绘制直方图,但也不需要这么复杂,Matplotlib提供了绘制直方图的接口ax.hist(x,bins

1.6K41

你知道怎么用Pandas绘制带交互的可视化图表吗?

之前咱们介绍过Pandas可视化图表的绘制《『数据可视化』一文掌握Pandas可视化图表》,不过它是依托于matplotlib,因此无法进行交互。...,我们还可以设置很多参数,用来设置可视化图表的一些功能: kind : 图表类型,目前支持的有:“line”、“point”、“scatter”、“bar”和“histogram”;不久的将来,更多的将被实现为水平条形图...柱状图(条形图) 柱状图没有特殊的关键字参数,一般分为柱状图和堆叠柱状图,默认是柱状图。...alpha=0.6) 默认情况下,x轴的值就是数据索引列的值,我们也可通过指定参数x来设置x轴;另外,我们还可以通过关键字kind="barh"或访问器plot_bokeh.barh来进行条形图绘制...面积图 面积图嘛,提供两种:堆叠或者彼此之上绘制 stacked:如果为 True,则面积图堆叠;如果为 False,则在彼此之上绘制图。

3.6K30

matplotlib入门

、3D线框图等 seaborn简介 Seaborn是一种开源的数据可视化工具,它在Matplotlib的基础上进行了更高级的API封装,因此可以进行更复杂的图形设计和输出。...Seaborn是一种开源的数据可视化工具,它在Matplotlib的基础上进行了更高级的API封装,因此可以进行更复杂的图形设计和输出。...3)后端层 Matplotlib结构最底层,它定义了三个基本类,首先是FigureCanvas(图层画布类),它提供了绘图所需的画布,其次是Renderer(绘图操作类),它提供了画布上进行绘图的各种方法...#画第二个条形图 rects2 = plt.bar( # index, # 与第一个条形图X周上无缝“肩并肩” index +bar_width...', label = '张三') #定义第一个条形图的标签信息 #画第二个条形图 rects2 = plt.bar(index, # 与第一个条形图X周上无缝“

4.2K20

Python 数据分析(PYDA)第三版(四)

有时您可能需要重新排列轴上级别的顺序或按特定级别的值对数据进行排序。...,但您可以选择通过传递level参数仅使用单个级别或一组级别进行排序。...我们通过传递stacked=True从 DataFrame 创建堆叠条形图,导致每行中的值水平堆叠在一起(参见 DataFrame 堆叠条形图): In [75]: df.plot.barh(stacked...假设我们想要制作一个堆叠条形图,显示每天每个派对规模的数据点的百分比。我使用read_csv加载数据,并通过日期和派对规模进行交叉制表。...因为day的每个值中有多个观察值,所以条形图是tip_pct的平均值。条形图上画的黑线代表 95%的置信区间(可以通过可选参数进行配置)。

19200
领券