python绘制堆叠图

常用的堆叠图

常用的堆叠图包括堆叠面积图和堆叠柱状图,它们各自有哪些相应的适用场景呢?下面就进行解答。

堆叠柱状图:

适用场景:
1、比较多个部分的总量:堆叠柱状图可以用于比较多个类别的总量,并展示每个类别内部的分布 情况。
2、强调总量和各部分占比:堆叠柱状图可以清晰地显示各类别之间的相对大小,以及每个类别内 部子部分的比例。
3、变化趋势:可以用于显示各类别的变化趋势,尤其是在多个时间点或条件下。
4、多个类别的组合:适用于展示多个类别及其子类别的组合情况,例如不同产品的销售额,以及各产品的成本、利润等。

示例应用:
1、销售报表:展示不同产品的总销售额,并分解为不同渠道或区域的销售额。
2、财务报表:比较不同类别的总收入,并展示各收入来源的具体构成。
3、项目进度:显示项目总进度,并将其分解为不同阶段或任务的完成情况。

堆叠面积图:

适用场景:

1、强调总量和组成比例:堆叠面积图适合强调总量以及各部分占总量的比例。
2、显示变化趋势:可以用于显示多个系列数据随时间或其他变量的变化趋势,并强调它们的总和。
3、呈现累积效果:可以显示多个累积过程的效果,例如累积销售额、累积收益等。
4、展示总和与组成部分之间的关系:适用于展示总和和组成部分之间的相对重要性或相对变化。

示例应用:

1、财务报表:用于展示总收入、总成本以及它们的累积效果。
2、气候变化数据:显示总降雨量,并将其分解为不同类型的降水。
3、人口统计数据:展示总人口数量,并将其分解为不同年龄组的人口数量。

总的来说,选择使用堆叠柱状图或堆叠面积图取决于你想要传达的信息以及数据的特性。如果你需要强调各部分的总量并比较它们的大小,可以选择堆叠柱状图。如果你更关注总量和各组成部分的相对比例,以及它们随时间的变化趋势,那么堆叠面积图可能更合适。

python绘制堆叠柱状图:

import matplotlib.pyplot as plt

# 准备数据
categories = ['A', 'B', 'C', 'D', 'E']
values1 = [10, 15, 25, 30, 20]
values2 = [5, 10, 15, 20, 25]

x = range(len(categories))

# 绘制堆叠柱状图
plt.figure(figsize=(10, 6))

plt.bar(x, values1, label='Series 1', color='blue')
plt.bar(x, values2, bottom=values1, label='Series 2', color='orange')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.xticks(x, categories)
plt.legend(loc='upper left')
plt.title('Stacked Bar Chart Example')

plt.show()

结果展示:
在这里插入图片描述

python绘制堆叠面积图

import matplotlib.pyplot as plt
import numpy as np

# 准备数据
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 9, 16, 25]
y3 = [3, 6, 9, 12, 15]

# 使用numpy来计算堆叠面积图的顶部和底部
y1_bottom = np.zeros(len(x))
y2_bottom = np.add(y1, y1_bottom)
y3_bottom = np.add(y2, y2_bottom)

# 绘制堆叠面积图
plt.figure(figsize=(10, 6))

plt.fill_between(x, y1_bottom, y1_bottom + y1, label='Series 1', alpha=0.5)
plt.fill_between(x, y2_bottom, y2_bottom + y2, label='Series 2', alpha=0.5)
plt.fill_between(x, y3_bottom, y3_bottom + y3, label='Series 3', alpha=0.5)

plt.legend(loc='upper left')
plt.title('Stacked Area Plot Example')
plt.xlabel('X')
plt.ylabel('Y')

plt.show()

结果展示:
在这里插入图片描述

制作堆叠需要先明确数据的层级关系,即每个类别下的不同系列的数据。然后通过pyecharts中的`Stack`组件来实现堆叠效果。 在绘制堆叠时,可以使用pyecharts中的`Bar`组件或者`Line`组件来绘制每个系列的数据。同时,需要设置`is_stack`参数为True,来实现堆叠效果。 以下是一个简单的例子,展示如何使用pyecharts制作堆叠: ```python from pyecharts import options as opts from pyecharts.charts import Bar # 构造数据 x_data = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] y_data1 = [120, 200, 150, 80, 70, 110, 130] # 第一层数据 y_data2 = [60, 80, 70, 50, 40, 60, 70] # 第二层数据 # 绘制堆叠 bar = Bar() bar.add_xaxis(x_data) bar.add_yaxis("Series 1", y_data1, stack="stack1") bar.add_yaxis("Series 2", y_data2, stack="stack1") bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) bar.set_global_opts(title_opts=opts.TitleOpts(title="Stacked Bar Chart")) # 保存表 bar.render("stacked_bar_chart.html") ``` 在这个例子中,我们使用`Bar`组件来绘制堆叠。首先,我们构造了x轴的数据和两个层级下的y轴数据。然后,我们使用`add_xaxis`函数将x轴数据添加到表中。接着,我们使用`add_yaxis`函数添加两个系列的数据,并且设置它们都属于同一个堆叠组(即`stack1`)。最后,我们使用`set_series_opts`函数来隐藏每个系列的标签,并使用`set_global_opts`函数设置表标题。 通过上述步骤,我们就可以得到一个简单的堆叠。在实际应用中,我们可以根据需要调整各种参数,来实现更复杂、更美观的表效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭博锐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值